raw_input과 input은 모두 Python에 내장된 함수로, 콘솔에서 입력을 읽어 사용자와 상호작용합니다. 그러나 그 기능은 동일하지 않습니다. 다음은 사용법의 차이를 보여주는 두 가지 예입니다.
예제 1
Python 2.7.5 (default, Nov 18 2015, 16:26:36) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> >>> raw_input_A = raw_input("raw_input: ") raw_input: PythonTab.com >>> print raw_input_A PythonTab.com >>> input_A = input("Input: ") Input: PythonTab.com Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'PythonTab' is not defined >>> >>> input_A = input("Input: ") Input: "PythonTab.com" >>> print input_A PythonTab.com >>>
예제 2
Python 2.7.5 (default, Nov 18 2015, 16:26:36) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> >>> raw_input_B = raw_input("raw_input: ") raw_input: 2015 >>> type(raw_input_B) <type 'str'> >>> input_B = input("input: ") input: 2015 >>> type(input_B) <type 'int'> >>>
예제 1 보시다시피 두 함수 모두 문자열을 받을 수 있지만 raw_input()은 문자열을 직접 읽습니다. 입력 받기 콘솔에서(모든 유형의 입력을 허용할 수 있음) input()의 경우, 합법적인 파이썬 표현식을 읽을 수 있기를 바랍니다. 즉, 문자열을 입력할 때 따옴표를 사용하여 묶어야 합니다. 그렇지 않으면 SyntaxError가 발생합니다.
예 2 다음을 볼 수 있습니다. raw_input()은 모든 입력을 문자열로 처리하고 문자열 유형을 반환합니다. 그리고 input()은 순수 숫자 입력을 처리할 때 고유한 특성을 가지고 있으며, 예제 1에서 볼 수 있듯이 동시에 입력 숫자의 유형(int, float)을 반환합니다. 예: input( 1 + 3 )은 4를 int로 반환합니다.
Python 매뉴얼을 확인하고 배우세요:
input([prompt])
eval(raw_input(prompt))
input() 본질과 동일 여전히 raw_input()을 사용하여 구현되며, raw_input()을 호출한 후 eval() 함수를 호출하기만 하면 표현식을 input()의 매개변수로 사용할 수도 있으며 표현식의 값을 계산하여 반환합니다.
그러나 내장 함수에는 다음과 같은 문장이 있습니다. 사용자의 일반적인 입력에는 raw_input() 함수 사용을 고려하십시오.
input()이 특별히 필요한 경우가 아니면, 그렇지 않은 경우 일반적인 상황에서는 raw_input()을 사용하여 사용자와 상호 작용하는 것이 좋습니다.