파이썬 int( ) 함수와 input( ) 함수
int(input())을 왜 함께 쓸까? - 파이썬 입력의 기본
파이썬으로 프로그램을 만들다 보면 사용자에게 숫자를 입력받아야 할 때가 많습니다. 가장 먼저 떠오르는 함수가 바로 input()인데요, 이 함수는 사용자가 키보드로 입력한 내용을 프로그램에 넘겨줍니다. 그런데 input()만 쓰면 바로 숫자가 될까요? 아닙니다. input()은 항상 문자열(str) 값을 반환합니다. 즉, 사용자가 10을 입력해도 프로그램 안에서는 '10'(문자열)로 받아들입니다.
숫자 계산을 하려면 반드시 이 값을 숫자 자료형, 즉 int(정수), float(실수) 등으로 바꿔야 합니다. 그래서 int(input())을 많이 사용하는 것입니다. 이렇게 하면 사용자가 입력한 문자열을 정수로 변환한 값을 바로 얻을 수 있습니다.
가장 작은 실행 예제 - int(input())의 기본 사용법
아래는 int(input())을 사용해 정수를 입력받고 출력하는 가장 단순한 예제입니다.
number = int(input("정수를 입력하세요: "))
print("입력한 숫자:", number)
여기서 input()이 먼저 실행되어 사용자의 입력을 받습니다. 그 결과는 문자열이므로, int()가 그 문자열을 정수로 바꿉니다. 마지막으로 print()가 정수 값을 출력합니다.
실행 순서와 핵심 줄 설명
- input() : 사용자가 키보드로 값을 입력할 때까지 프로그램이 멈춥니다.
- int() : 입력받은 문자열을 정수로 변환합니다. 만약 변환이 불가능한 문자를 입력하면 오류가 발생합니다.
- 변수에 저장 및 출력 : 변환된 값을 변수에 저장하고,
print()로 보여줍니다.
예를 들어, '20'을 입력하면 number에는 정수 20이 저장됩니다.
실제 사용 예제 - 입력받은 수로 계산하기
사용자로부터 두 개의 숫자를 입력받아 합을 구하는 예제를 살펴봅시다.
a = int(input("첫 번째 정수 입력: "))
b = int(input("두 번째 정수 입력: "))
sum_value = a + b
print("두 수의 합:", sum_value)
여기서 각 입력마다 int()를 사용해 반드시 정수로 변환하고, 변수에 저장한 뒤 합을 계산합니다. 만약 int()를 빼고 input()으로만 받는다면 문자열끼리의 덧셈(붙이기)이 되어 원하는 결과가 나오지 않습니다.
자주 하는 실수와 오류 메시지
초보자가 많이 하는 실수 중 하나는 input()만 사용하고 바로 계산에 사용하는 것입니다.
잘못된 예:
a = input("숫자 입력: ")
b = input("숫자 입력: ")
print(a + b)
이렇게 하면 2와 3을 입력해도 5가 아니라 23이 출력됩니다. 이유는 두 값이 문자열이기 때문입니다.
또 다른 흔한 실수는 문자나 소수점 등 정수가 아닌 값을 입력했을 때입니다. 예:
number = int(input("정수 입력: "))
# 'hello' 또는 '3.14' 입력 시 오류 발생
이 경우 대표적으로 아래와 같은 오류가 발생합니다.
ValueError: invalid literal for int() with base 10: 'hello'
즉, int()는 반드시 정수로 해석할 수 있는 문자열이어야만 변환이 가능합니다.
안전하게 숫자 입력받기 - 입력값 검증
실제 프로그램에서는 사용자가 잘못된 값을 입력할 수 있으므로, 오류가 나지 않게 하기 위해 try-except문을 자주 사용합니다. 아래는 정수가 올 때까지 반복해서 입력받는 예제입니다.
while True:
user_input = input("정수를 입력하세요: ")
try:
number = int(user_input)
break
except ValueError:
print("잘못된 입력입니다. 정수만 입력하세요.")
print("입력된 정수:", number)
이 코드는 숫자가 아닌 값을 입력해도 친절하게 안내 메시지를 띄우고, 올바른 정수가 들어올 때까지 계속 묻습니다. try-except문은 입력값이 잘못될 경우 프로그램이 중단되는 것을 방지해줍니다.
핵심 정리와 연습 문제
핵심 요약:
input()은 항상 문자열을 반환한다.- 숫자가 필요할 때는
int()로 변환해야 한다. - 숫자가 아닌 값을
int()로 변환하려 하면 ValueError가 발생한다. - 사용자 입력에는 항상 예외 처리를 고려해야 안전하다.
연습 문제
- 사용자에게 두 개의 정수를 입력받아 곱셈 결과를 출력하는 프로그램을 작성하세요.
- 사용자가 입력한 값이 정수가 아니면 다시 입력하도록 하는 코드를 짜보세요.
(힌트: while문과 try-except문 사용) - 세 개의 숫자를 입력받아 평균을 출력하는 프로그램을 만들어 보세요.
(단, 모든 입력이 올바른 정수일 때만 계산하세요.)