확인한 환경과 범위

Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.

이 글의 순서 4개 단락

앞 강의에서는 코드에 적어 둔 숫자를 변수에 저장해 더했습니다. 이번에는 프로그램이 실행될 때 두 수를 입력받아 합계를 구합니다. 예제는 Python 3.12를 기준으로 합니다.

입력을 숫자로 바꾸기

input()은 사용자가 한 줄을 입력하고 Enter를 누를 때까지 기다린 뒤, 입력한 내용을 문자열로 돌려줍니다. 문자열은 문자로 이루어진 값이므로, 2를 입력해도 바로 숫자 2가 되지는 않습니다.

float()은 숫자 형태의 문자열을 소수도 표현할 수 있는 실수로 변환합니다. 예를 들어 float("2.5")의 결과는 숫자 2.5입니다. 정수처럼 입력한 3도 3.0으로 변환할 수 있습니다.

두 수를 입력받아 더하기

first_text = input("첫 번째 수: ")
second_text = input("두 번째 수: ")
first = float(first_text)
second = float(second_text)
total = first + second
print("합계:", total)

사용자가 입력한 두 수 더하기 — 첫 예제의 실제 실행 결과

첫 번째 입력으로 2.5, 두 번째 입력으로 3을 넣는다고 가정합니다. 터미널에 직접 입력할 때의 예상 화면은 다음과 같습니다. 안내 문구 뒤의 2.5와 3은 사용자가 입력하는 값입니다.

첫 번째 수: 2.5
두 번째 수: 3
합계: 5.5

첫 두 줄은 입력값을 각각 first_text와 second_text에 문자열로 저장합니다. 다음 두 줄에서 float()으로 변환한 숫자를 first와 second에 저장합니다. first + second는 숫자 덧셈을 수행하고, 그 결과를 total에 담습니다. 마지막 print()는 합계:와 결과를 공백으로 구분해 출력합니다.

흔한 실수와 입력의 경계

변환하기 전에 first_text + second_text를 계산하면 숫자 덧셈이 아니라 문자열 연결이 됩니다. 위 입력에서는 "2.5"와 "3"이 이어져 "2.53"이 됩니다. 합계를 구할 때는 변환한 first와 second를 사용하세요.

-2, 0, 1.5처럼 음수, 0, 소수도 입력할 수 있습니다. 반면 hello나 빈 입력처럼 숫자로 변환할 수 없는 값은 ValueError를 발생시키고 현재 프로그램을 중단합니다. 잘못된 입력을 안내하고 다시 받는 방법은 8강에서 다룹니다.

실수는 일부 소수를 정확히 표현하지 못할 수 있습니다. 예를 들어 0.1과 0.2의 합계는 0.30000000000000004로 표시될 수 있습니다. 이것은 입력을 문자열로 연결한 결과와는 다른, 실수 표현의 특성입니다.

연습과 풀이

프로그램에 첫 번째 수로 -1.5, 두 번째 수로 4를 입력하면 합계는 무엇일까요?

두 문자열은 각각 실수 -1.5와 4.0으로 변환됩니다. 두 값을 더한 예상 결과는 2.5이므로 마지막 줄은 합계: 2.5입니다.

input()과 float()의 동작은 Python 3.12 내장 함수 문서를, 실수 표현의 한계는 Python 3.12 부동소수점 문서를 참고하세요.

CHECK THE SOURCE

참고한 공식 문서

기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.

한 줄씩 이해하고, 차곡차곡 기록합니다.이 글의 오류 제보하기 ↗