우리는 앞 페이지에서 산술 연산 후 결과를 화면에 출력하는 프로그램을 연습하였습니다.
그런데 앞의 프로그램은 항상 똑같은 산술 연산만을 합니다.
사용자와의 상호작용은 전혀 없는데 이번 장에서는 사용자로부터 데이터를 얻어 더 효율적인 프로그램을 만들겠습니다.
파이썬은 키보드에서 입력을 받는 input() 함수를 제공합니다.
input() 은 입력을 받기 전 사용자에게 출력하는 안내 문자열을 우리가 작성할 수 있습니다.
변수 = input("안내 문자열")
input()이 호출되면 프로그램의 실행은 사용자가 입력할 때까지 잠시 중지됩니다.
사용자가 입력을 끝내고 엔터키를 누르면 프로그램의 실행이 다시 시작되며 input() 함수의 안내 문자열은 화면에 출력됩니다.
아래 예제를 통해 작동 원리를 알아보겠습니다.
name = input("이름이 무엇인가요? : ")
print("만나서 반갑습니다. " + name + "씨!")
age = input("나이는요? ")
print("네, 나이는 " + age + " 살이시군요, " + name + "씨!")
<실행 결과>
이름이 무엇인가요? 김봉민
만나서 반갑습니다. 김봉민씨!
나이는요? 20
네, 나이는 20 살이시군요, 김봉민씨!
위의 결과에서 첫 번째 줄의 김봉민 과 세 번째 줄의 20 은 사용자로부터 입력받은 값입니다.
첫 번째 줄과 세 번째 줄의 입력 값을 각각 강슬기 와 25 로 변경하면
<실행 결과>
이름이 무엇인가요? 강슬기
만나서 반갑습니다. 강슬기씨!
나이는요? 25
네, 나이는 25 살이시군요, 강슬기씨!
위의 결과처럼 변경됩니다.
사용자로부터 정수 2개를 받아 합계를 출력하는 프로그램을 작성하고자 합니다.
x = input("첫 번째 정수 : ")
y = input("두 번째 정수 : ")
sum = x + y
print("합은 ", sum)
<실행 결과>
첫 번째 정수 : 10
두 번째 정수 : 20
합은 1020
우리는 계산 결과로 30은 원하였지만 충격적인 결과... "1020"이 나왔습니다.
파이썬은 우리가 입력한 10과 20을 문자열로 인식하여 서로 연결한 결과를 출력한 것인데 위의 문제를 해결하려면 문자열 "10"을 정수 10으로 변환하여야 합니다.
int() 함수는 문자열을 받아 정수로 변환합니다. 위의 예제를 올바르게 변경하면
x = int(input("첫 번째 정수 : "))
y = int(input("두 번째 정수 : "))
sum = x + y
print("합은 ", sum)
<실행 결과>
첫 번째 정수 : 10
두 번째 정수 : 20
합은 30
int() 함수를 이용하여 사용자가 입력한 문자열을 정수로 변환하여 올바른 계산 결과가 나온 것을 볼 수 있습니다.