2010-05-07 6 views
1

여기 내 코드입니다 :문제, 오류 : 이름의이 '정의되지 않은

#This is a game to guess a random number. 

import random 

guessTaken = 0 

print("Hello! What's your name kid") 
myName = input() 

number = random.randint(1,20) 
print("Well, " + myName + ", I'm thinking of a number between 1 and 20.") 

while guessTaken < 6: 
    print("Take a guess.") 
    guess = input() 
    guess = int(guess) 

    guessTaken = guessTaken + 1 

    if guess < number: 
     print("You guessed a little bit too low.") 

    if guess > number: 
     print("You guessed a little too high.") 

    if guess == number: 
     break 

if guess == number: 
    guessTaken = str(guessTaken) 
    print("Well done " + myName + "! You guessed the number in " + guessTaken + " guesses!") 

if guess != number: 
    number = str(number) 
    print("No dice kid. I was thinking of this number: " + number) 

입니다 오류가 나는 얻을 :

Name error: Name 's' is not defined. 

내가 문제가 있다는 것 같아요 파이썬 3을 설치했지만 파이썬 2.6에서 프로그램을 해석 중이다. 나는 당신이 나를 도와 줄 수 있다면 Linux Mint를 사용하고있다.

Geany를 IDE로 사용하고 F5 키를 눌러 테스트합니다. 기본적으로 2.6을로드 할 수 있지만 실제로는 알지 못합니다. :(

편집 : 오류 1은 다음과 같습니다

File "GuessingGame.py", line 8, in <Module> 
myName = input() 

오류 2입니다 : 파이썬 2에서 이것을 실행하려면

File <string>, line 1, in <Module> 
+1

어떤 줄 오류가 있습니까? 당신은 아마도 주위에 떠돌던's'을 떠 다니고있을 것입니다. (어쩌면 긴 줄 끝에 남은 남은 부분) – ChristopheD

+0

나는 이것이 대답에 충분하지 않다고 생각했기 때문에 나는 단지 주석을 달았습니다 : 저는 파이썬에 대해 나쁜 경험을했습니다. 3과 코드는 특별히 작성된 것이 아니며 온라인 학습을위한 파이썬 코드의 95 % *가 파이썬 2를 위해 만들어 졌기 때문에 파이썬 2.6을 배우고 싶다면 추천합니다.6 (* 사실이 아님) – LukeN

+0

이 자습서는 http://inventwithpython.com/chapters/을 따르므로 Python 3과 함께 따르는 것이 좋습니다. O_O –

답변

4

input()에 대한 데이터를 Python으로 입력하면 2, 당신은 파이썬 표현식을 입력하고 있습니다. 무엇을 입력 하든지간에

  1. 표현식처럼 보이지만 리터럴이 아닙니다.

  2. 은의 S 가지고 있습니다 (따라서 정의되지 않은 변수를.)

어느

  • input()을 사용하고 raw_input()

    를 사용 따옴표에 문자열을 넣어 또는

  • 정지

  • Python 2.6 사용을 중단하십시오.

"파이썬 3이 설치되어 있지만 프로그램이 파이썬 2.6에 의해 해석되고 있는지 확실하지 않습니다." 방법. 설치되어있는 경우 사용되지 않는 이유는 무엇입니까? PATH에 어떤 문제가 있습니까?

+0

필자는 Linux Mint 8을 설치했으며 파이썬 2.6과 함께 제공됩니다. 필자는 수동으로 Python 3을 설치 (sudo apt-get python3 설치)하고 Geany를 IDE로 설치했습니다. Geany는 인터프리터로 2.6을 자동으로 사용하고 Python 3을 사용하려고합니다. 3을 사용하여 파이썬 스크립트를 시작하는 터미널 명령을 알면 내 문제가 해결됩니다. 어떤 도움이 필요합니까? –

+2

터미널 명령은'python3 GuessingGame.py'이 될 것입니다. –

+0

예전처럼 매력적이었고 초기 평가가있었습니다. Geany는 내가 원한 것처럼 3.0 대신 2.6을 사용했다. 다시 한번 감사드립니다! –

1

, 당신은 전화를 교체해야합니다 ~ input()raw_input()

0

간단한 수정. 입력을 raw_input으로 변경하면됩니다. 예를 들어 :

myName = raw_input("Hello! What's your name kid? ") 

체크 아웃 자세한 내용은 Python documentatio N,하지만 당신은 그것을 반환 무엇) (평가 후면을 시도하는 것 같은 입력을 사용하지 않도록 할;

Warning

This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)

+0

이런 종류의 일은 파이썬 3이 거의 모든 사람이 그것을 사용할 때 어떤 종류의 "티핑 포인트"를 때릴 지 궁금합니다. 필자는 print 서술문의 "기능화"에 대한 큰 팬이 아니지만,이 input() 결함은 Python 1.0부터 지금까지 그대로 남아있을 것으로 예상하지 못했습니다. –