Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 raw_input()과 input() 함수의 차이점 완벽 정리

Python 2에서의 raw_input() 함수

raw_input() 함수는 사용자에게 프롬프트를 표시하고(raw_input([arg])의 선택적 인자 활용), 사용자로부터 입력을 받은 뒤 해당 데이터를 문자열(string) 형태로 반환합니다. 예를 들어 다음과 같습니다.

name = raw_input("What is your name? ")
print "Hello, %s." %name

input() 함수와의 차이점

Python 2의 input() 함수는 사용자가 입력한 값을 단순히 문자열로 반환하지 않고, 그대로 파이썬 표현식으로 평가(eval)하려고 시도한다는 점에서 raw_input()과 크게 다릅니다. 이 때문에 숫자 이외의 값을 입력하면 오류가 발생할 수 있으며, 의도하지 않은 코드 실행 같은 보안 문제로도 이어질 수 있습니다.

따라서 일반적으로는 input() 사용을 피하고, raw_input()으로 문자열을 받은 뒤 필요에 따라 int(), float() 등을 이용해 직접 파싱·변환하는 방식이 더 안전하며 권장됩니다.

Python 3에서의 변경 사항

Python 3에서는 raw_input() 함수가 제거되고, 그 기능이 input()으로 이름 변경되어 통합되었습니다. 즉, Python 3의 input()은 항상 입력값을 문자열로 반환하므로 별도의 처리 없이 안전하게 바로 사용할 수 있습니다.

name = input("What is your name? ")
print("Hello, %s." %name)

정리하면, Python 2 환경에서는 raw_input()을 사용하는 것이 안전하고, Python 3부터는 input() 하나만 사용하면 됩니다.