사용자 입력(input)과 출력(print)
1. 입력(input)
1-1. 사용자 입력이 필요한 이유
- 지금까지 우리는 변수에 값을 직접 할당하는 형태로만 코드를 작성해왔다.
- 따라서 어떤 사용자에 대한 이름, 나이, 직업 정보를 저장하려면 아래와 같이 직접 정수, 문자열 값을 작성해야 한다.
name = "kyle"
age = 20
job = "engineer"
- 만약 프로그램을 실행할 때마다 다른 사용자의 이름, 나이, 직업 정보를 작성해야 한다면 어떨까? 소스 코드에서 매번 수정해야 하는 것일까?
name = "alex"
age = 30
job = "coach"
- 사용자가 100명이면 100번을 수정해야 할까? 1억 명이면 1억 번을 수정해야 할까?
1-2. 내장함수 input()
- 따라서 프로그램을 실행하면 사용자로부터 이름, 나이, 직업 정보를 입력받아 변수에 유동적으로 할당할 수 있게 해야 한다.
- 파이썬의 내장함수 input()을 사용하면 터미널에서 사용자 입력을 받을 수 있다.
- 프로그램을 실행하면 터미널에 커서가 깜박인다. 직접 키보드로 값을 입력한 후 엔터를 누르면 사용자 입력이 완료된다.
name = input() # 사용자로부터 입력받은 문자열 "kyle"이 변수 name에 할당
print(name)
kyle <= 이 부분은 사용자의 입력
kyle <= 이 부분은 출력
- input() 내장함수의 괄호 안에 문구를 작성하여, 사용자에게 입력 안내 문구를 제공할 수도 있다.
name = input("이름을 입력하세요: ")
print(name)
이름을 입력하세요: kyle
kyle
1-3. 사용자 입력 시 주의사항
- 내장함수 input()을 통해 받는 모든 값은 문자열로 취급된다.
- 예를 들어 사용자의 나이를 입력받고 그 값과 타입을 출력하는 코드를 작성해 보자.
age = input()
print(age)
print(type(age)) # age의 타입이 숫자가 아니라 문자열!
20 <= 이 부분은 사용자의 입력
20
<class 'str'>
- 사용자의 나이를 정수형으로 저장하고 싶다면, 명시적 형변환을 사용하면 된다.
age = int(input()) # int() 내장함수를 사용하여 형변환
print(age)
print(type(age)) # age의 타입이 정수형으로 변한 것을 확인
20 <= 이 부분은 사용자의 입력
20
<class 'int'>
2. 출력(print)
2-1. 내장함수 print()
- 파이썬의 내장함수 print()를 사용하면 터미널에 값을 출력할 수 있다.
- print()는 기본적으로 괄호 안에 들어간 값을 한 줄로 출력 후, 한 줄을 띄운다(개행 한다).
word1 = "hello"
word2 = "python"
print(word1) # "hello"를 출력하고 한 줄 띄움
print(word2) # "python"을 출력하고 한 줄 띄움
hello
python
- 아무것도 출력하지 않고 한 줄만 띄우고 싶다면 print()라고만 작성하면 된다.
word1 = "hello"
word2 = "python"
print(word1)
print() # 한 줄 띄우기
print(word2)
hello
python
- print()의 괄호 안에 콤마(,)를 사용해서 여러 데이터를 넣으면, 공백을 기준으로 출력된다.
word1 = "hello"
word2 = "python"
word3 = "yeah!"
print(word1, word2, word3) # 세 개의 문자열이 공백을 기준으로 출력
hello python yeah!
2-2. end 옵션
- print()는 기본적으로 끝에 한 줄을 띄운다고 하였다.
- end 옵션을 사용하면 출력 이후 한 줄을 띄우지 않고, 끝부분에 다른 문자를 출력할 수 있다.
- print(값1, 값2, …, end="끝에 출력할 문자")의 형식으로 사용한다.
print("Hello World", end="!") # "Hello World"를 출력하고 한 줄을 띄우지 않고 끝에 느낌표(!)를 추가
Hello World!
- end 옵션에 공백을 넣어서 띄어쓰기를 할 수도 있다.
word1 = "hello"
word2 = "python"
print(word1, end=" ") # "hello"를 출력하고 한 줄 띄우지 않고 끝에 공백을 출력
print(word2)
hello python
- end 옵션에 빈 문자열을 넣어서 문자열을 붙일 수도 있다.
word1 = "hello"
word2 = "python"
print(word1, end="") # "hello"를 출력하고 한 줄 띄우지 않고 끝에 빈 문자열을 출력
print(word2)
hellopython