6.3 입력 값을 변수에 저장하기
지금까지 변수를 만들 때 10, 'Hello, world!' 등의 값을 직접 할당해주었습니다. 하지만 이렇게 하면 고정된 값만 사용할 수 있습니다. 그럼 매번 다른 값을 변수에 할당하려면 어떻게 해야 할까요?
6.3.1 input 함수 사용하기
이때는 input 함수를 사용하면 됩니다.
- input()
>>>에 input()을 입력한 뒤 엔터 키를 누르면 다음 줄로 넘어갑니다. 이 상태에서 Hello, world!를 입력한 뒤 엔터 키를 누르세요.
>>> input() Hello, world! (입력) 'Hello, world!'
입력한 문자열이 그대로 출력됩니다. 즉, input 함수는 사용자가 입력한 값을 가져오는 함수입니다
6.3.2 input 함수의 결과를 변수에 할당하기
이제 input 함수의 결과를 변수에 할당해보겠습니다.
- 변수 = input()
다음과 같이 input 함수의 결과를 변수 x에 할당합니다. 그리고 그다음 줄에서 Hello, world!를 입력한 뒤 엔터 키를 누르세요.
>>> x = input() Hello, world! (입력) >>>
이렇게 하면 변수 x에 입력한 문자열이 저장됩니다. x의 값을 출력해보면 방금 입력한 'Hello, world!'가 나옵니다.
>>> x 'Hello, world!'
여기서 한 가지 불편한 점은 input 함수가 실행된 다음에는 아무 내용이 없어서 입력을 받는 상태인지 출력이 없는 상태인지 알 수가 없다는 점입니다. 이때는 input의 괄호 안에 문자열을 지정해주면 됩니다.
- 변수 = input('문자열')
>>> x = input('문자열을 입력하세요: ') 문자열을 입력하세요: Hello, world! (입력) >>> x 'Hello, world!'
실행을 해보면 '문자열을 입력하세요: '처럼 안내 문구가 먼저 나옵니다. 여기에 문자열을 입력한 뒤 엔터 키를 누르면 입력한 그대로 출력됩니다. 즉, 이 문자열은 사용자에게 입력받는 값의 용도를 미리 알려줄 때 사용합니다. 다른 말로는 프롬프트(prompt)라고도 부릅니다(파이썬 프롬프트 >>>와 같은 의미입니다).
6.3.3 두 숫자의 합 구하기
그럼 조금 응용해서 숫자 두 개를 입력받은 뒤에 두 숫자의 합을 구해보겠습니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력하세요.
input_integer.py
a = input('첫 번째 숫자를 입력하세요: ') b = input('두 번째 숫자를 입력하세요: ') print(a + b)
소스 코드를 실행하면 '첫 번째 숫자를 입력하세요: '가 출력됩니다. 여기서 10을 입력하고 엔터 키를 누르세요. 그리고 '두 번째 숫자를 입력하세요: '가 출력되면 20를 입력하고 엔터 키를 누르세요.
실행 결과
첫 번째 숫자를 입력하세요: 10 (입력) 두 번째 숫자를 입력하세요: 20 (입력) 1020
10 + 20의 결과는 30이 나와야 하는데 1020이 나왔습니다. 왜 이런 결과가 나왔을까요? input에서 입력받은 값은 항상 문자열 형태이기 때문입니다. 즉, 10과 20은 겉보기에는 숫자이지만 실제로는 문자열이므로 10과 20를 +로 연결하여 1020이 나오게 됩니다.
다음과 같이 input의 결과를 변수에 저장한 뒤 type을 사용해보면 input의 결과가 문자열(str)이라는 것을 알 수 있습니다.
>>> a = input() 10 (입력) >>> type(a) <class 'str'>
6.3.4 입력 값을 정수로 변환하기
10 + 20의 결과가 30이 나오게 하려면 input에서 입력받은 문자열을 숫자(정수)로 만들어주어야 합니다.
- 변수 = int(input())
- 변수 = int(input('문자열'))
input_integer.py
a = int(input('첫 번째 숫자를 입력하세요: ')) # int를 사용하여 입력 값을 정수로 변환 b = int(input('두 번째 숫자를 입력하세요: ')) # int를 사용하여 입력 값을 정수로 변환 print(a + b)
실행 결과
첫 번째 숫자를 입력하세요: 10 (입력) 두 번째 숫자를 입력하세요: 20 (입력) 30
이제 10 + 20의 결과로 30이 나왔죠? 입력받은 값을 숫자(정수)로 만들려면 int에 input()을 넣어줍니다. int는 정수로 된 문자열도 정수로 만들 수 있으므로 문자열 '10'은 정수 10으로 바뀝니다.
만약 3.5와 2.1처럼 실수를 더하려면 int 대신 float에 input()을 넣습니다. 각자 소스 코드를 수정하여 실수의 합도 구해보세요.