더북(TheBook)

11.2.4 사용자 입력을 다른 타입으로 변환하기

사용자가 입력한 모든 내용은 문자열로 저장된다. 하지만 숫자를 다루는 프로그램을 작성한다면 문자열을 입력 받아도 그리 편리하지 않다.

코드 11-5는 사용자에게 수를 물어보고 그 수의 제곱을 출력하는 프로그램이다. 사용자가 5를 입력하면 프로그램은 25를 출력한다.

이 프로그램에서 이해해야 할 내용이 몇 가지 있다. 사용자가 정수가 아닌 값을 입력하면 이 프로그램은 즉시 오류 메시지를 내면서 끝난다. 파이썬에는 정수가 아닌 값이 들어 있는 문자열을 수로 변환하는 방법이 없기 때문이다. 코드 11-5의 프로그램을 실행해서 a나 2.1을 사용자 입력으로 넣어 보라. 두 경우 모두 프로그램이 즉시 끝나면서 오류 메시지가 표시될 것이다.

사용자가 제대로 된 수(정수)를 입력하는 경우라도, 그 입력이 정수처럼 보일지는 몰라도 실제로는 숫자들로만 이뤄진 문자열임을 기억해야 한다. 사용자가 5를 입력하더라도 파이썬은 이를 "5"라는 문자열로 취급한다. 따라서 수를 얻으려면 문자열을 수로 타입 변환(casting, 캐스팅)해야 한다. 타입을 변환하려면 문자열 객체 앞에 타입 이름인 int를 표시하되, 괄호로 둘러싸서 표시하면 된다.

코드 11-5 사용자 입력을 가지고 계산하기

user_input = input("제곱을 계산할 수를 입력하시오: ") -- 사용자 입력을 받아서 저장
num = int(user_input) -- 사용자 입력을 정수로 변환
print(num*num) -- 정수 값의 제곱을 계산해 출력. 이 프로그램의 첫 두 줄을 num = int(input("제곱을 계산할 수를 입력하시오: ")) 라는 한 줄로 바꿀 수도 있음

 

셀프 체크 11.5

코드 11-5의 프로그램을 수정해서 화면에 정수가 아닌 실수가 표시되게 만들어 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.