입력 소스코드를 살펴보자
def input(prompt):
return eval(raw_input(prompt))
실제로 input도 raw_input을 호출하면 eval 처리만 하면 됩니다
eval의 역할은 무엇인가요?
input: 사용자 입력을 기준으로 타입 변환
raw_input: 사용자 입력을 문자열로 처리
다음은 자세한 보충입니다.
우선, 우리는 input()과 raw_input()이 모두 콘솔에서 입력을 얻는 데 사용된다는 것을 알고 있습니다. 물론 입력할 때 입력 프롬프트 정보를 추가할 수 있습니다:
a = raw_input("Please input a:") b = input("Please input b:")
그렇다면 무엇을 할까요? 둘의 차이점은 무엇입니까?
input()은 사용자가 숫자나 표현식을 입력할 수 있도록 지원하지만 문자열 입력은 지원하지 않습니다. Raw_input()은 원래 입력을 캡처합니다. 즉, 문자열을 반환하므로 입력이 숫자인 경우 강제 변환을 수행해야 합니다. 예:
a = int(raw_input("Please input the number a:"))
사실 input()은 raw_input()을 사용하여 구현됩니다. 따라서 input()이 특별히 필요한 경우를 제외하고는 raw_input()을 호출한 후 eval() 함수만 호출합니다. 그렇지 않으면 일반적인 상황에서는 raw_input()을 사용하여 사용자와 상호 작용하는 것이 좋습니다.
map은 함수와 반복 가능한 객체(예: 목록)를 매개변수로 받고, 함수로 각 요소를 처리한 후 새 목록을 반환합니다.
ACM은 a b c와 같은 형식의 한 줄을 입력해야 하는 경우가 있는데, 이 경우에는 map 함수를 사용하여 처리합니다. 여기서는 a, b, c가 모두 정수라고 가정합니다.
a,b,c = map(int, raw_input().split()), raw_input 함수는 문자열을 입력하고, 문자열의 분할 메소드는 문자열을 시퀀스로 분할하는 데 사용됩니다.
파이썬에서 input()과 raw_input()의 차이점을 분석하고 소개하는 관련 글은 PHP 중국어 홈페이지를 주목해주세요!