IT이야기

Python 3에서 Raw_input을 사용하는 방법

cyworld 2022. 3. 16. 22:06
반응형

Python 3에서 Raw_input을 사용하는 방법

import sys
print(sys.platform)
print(2**100)
raw_input()

나는 파이톤 3.1을 사용하고 있는데, 그것을 받을 수가 없어.raw_input도스 팝업을 "해결"하기 위해서.내가 읽고 있는 책은 파이썬 2.5용이고 나는 파이썬 3.1을 사용하고 있어.

이 문제를 해결하려면 어떻게 해야 할까?

파이썬 3부터.raw_input()로 이름이 바뀌었다.input().

From What's New In Python 3.0, Builtins 섹션 두 번째 항목.

이 기능은 Python 3.x 및 2.x에서 사용할 수 있다.

# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))

이것을 해결할 수 있는 믿을 만한 것이다.

from six.moves import input

6은 2/3 공통 코드 기반 고충점 중 많은 부분을 패치하는 모듈이다.

다른 사람들이 지적한 바와 같이.raw_input함수의 이름이 로 변경됨input파이톤 3.0에서, 그리고 당신은 정말로 더 최신의 책을 통해 더 나은 서비스를 제공받을 수 있을 것이다, 하지만 나는 당신의 대본의 출력을 볼 수 있는 더 좋은 방법이 있다는 것을 지적하고 싶다.

당신의 설명으로 볼 때, 당신은 윈도우를 사용하고 있고, 당신은 그것을 저장했다..py파일을 두 번 클릭하여 실행하십시오.튀어나온 터미널 창은 프로그램이 끝나자마자 닫히므로 프로그램 결과가 무엇이었는지 알 수 없다.이 문제를 해결하기 위해 귀하의 책에서는raw_input/input사용자가 Enter 키를 누를 때까지 기다리는 문장.하지만, 여러분이 보셨듯이, 만약 여러분이 프로그램의 오류와 같은 어떤 것이 잘못되면, 그 진술은 실행되지 않을 것이고, 무엇이 잘못되었는지 여러분이 볼 수 없는 한 창문은 닫힐 것이다.명령 프롬프트 또는 INDLE을 사용하는 것이 더 쉬울 수 있다.

명령 프롬프트 사용

Python 프로그램이 들어 있는 폴더 창을 볼 때, Shift 키를 누른 채로 창의 흰색 배경 영역에 있는 아무 곳이나 마우스 오른쪽 단추로 클릭하십시오.팝업 메뉴에는 "여기에서 명령 창 열기" 항목이 포함되어야 한다. (Windows Vista 및 Windows 7에서는 이 기능이 작동한다고 생각한다.)이렇게 하면 다음과 같은 모양의 명령 실행 창이 열린다.

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\Weeble\My Python Program>_

프로그램을 실행하려면 다음을 입력하십시오(스크립트 이름 대체).

    python myscript.py

...그리고 Enter 키를 누른다.("incess"가 인식된 명령이 아니라는 오류가 발생하면, http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 참조) 프로그램이 실행이 완료되면, 성공적으로 완료되든 안 되든, 창이 열린 상태로 유지되고 다른 명령을 입력할 수 있도록 명령어가 다시 나타난다.프로그램을 다시 실행하려면 파일 이름을 매번 입력하지 말고 위쪽 화살표를 눌러 입력한 이전 명령을 호출하고 Enter 키를 눌러 다시 실행하십시오.

유휴 상태 사용

INDLE은 Python과 함께 설치되는 간단한 프로그램 편집기다.다른 기능들 중에서 그것은 당신의 프로그램을 윈도우에서 실행할 수 있다.마우스 오른쪽 버튼을 클릭하십시오..py파일을 작성하고 "유휴 상태에서 편집"을 선택하십시오.프로그램이 편집기에 나타나면 F5 키를 누르거나 "실행" 메뉴에서 "Run module"을 선택하십시오.프로그램이 종료된 후에도 열려 있는 창에서 프로그램이 실행되며, 이 창에서 Python 명령을 입력하여 즉시 실행할 수 있다.

Timmerman의 솔루션은 코드를 실행할 때는 훌륭하게 작동하지만, 만약 당신이 원하지 않는다면.Undefined name파이플라이크 또는 유사한 린터를 사용할 때 다음 사항을 대신 사용할 수 있다.

try:
    import __builtin__
    input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
    pass

다음은 내 스크립트에 py2/3-agnonistic 환경에서 실행되지 않을 코드 입니다.

# Thank you, python2-3 team, for making such a fantastic mess with
# input/raw_input :-)
real_raw_input = vars(__builtins__).get('raw_input',input)

이제 real_raw_input을 사용할 수 있다.그것은 꽤 비싸지만 짧고 읽기 쉽다.원시 입력을 사용하는 것은 대개 시간비용이 많이 들기 때문에(입력을 기다리는) 중요하지 않다.

이론적으로는 real_raw_input 대신 raw_input을 할당할 수도 있지만 raw_input의 존재를 확인하고 그에 따라 행동하는 모듈이 있을 수 있다.안전한 편이 낫다.

다음 것은 어떠세요?Python2의 Raw_input(Python3의 입력의 의미)의 의미와 함께 Raw_input 또는 Python3의 입력을 모두 사용할 수 있어야 함

# raw_input isn't defined in Python3.x, whereas input wasn't behaving like raw_input in Python 2.x
# this should make both input and raw_input work in Python 2.x/3.x like the raw_input from Python 2.x 
try: input = raw_input
except NameError: raw_input = input

아마도 최선의 해결책은 아닐 것이다. 하지만 내가 여기 오기 전에 나는 공부에서 잠시도 쉬지 않고 계속 일하기 위해 이것을 즉석에서 만들었다.

def raw_input(x):
  input(x)

그럼 내가 달릴 때raw_input('Enter your first name: ')내가 작업하고 있던 대본에 있는 그대로 캡처되어 있다.input()할 것이다

이렇게 하지 않는 이유가 있을 수도 있어, 내가 아직 깨닫지 못한 거야!

새로운 기능을 만들어내면서 이렇게 할 수 있는 또 다른 방법.

import platform
def str_input(str=''):
    py_version = platform.python_version() # fetch the python version currently in use
    if int(py_version[0]) == 2:
       return raw_input(str) # input string in python2
    if int(py_version[0]) == 3:
       return input(str) # input string in python3

사용 방법:

str_input("Your Name: ")

python2 및 python3에서 실행할 수 있는 스크립트 및 입력을 만들 때 이 옵션을 사용하십시오.

참조URL: https://stackoverflow.com/questions/954834/how-do-i-use-raw-input-in-python-3

반응형