2012-10-27 4 views
2

J'ai donc travaillé sur un programme "guess the number" à deux joueurs. Mais j'ai juste du mal avec une chose.Python - Avoir quelques problèmes avec raw_input()

Code est donc ici:

import time 
import random 
thenumber = random.randint(1, 10) 
print "Welcome to Noah's Two Player guess a number game." 
print "What is player one's name?" 
player1 = raw_input() 
print "What is player two's name?" 
player2 = raw_input() 
print "Well " + player1 + " and " + player2 + ", are you ready to play?" 
choice = raw_input() 
if choice == yes: 
    print player1 + ", pick a number from 1 to 10." 
    player1guess = raw_input() 

    print player2 + ", pick a number from 1 to 10." 
    player2guess = raw_input() 

    print "Calculating..." 
    time.sleep(3) 

    p1 = thenumber - player1guess 
    p2 = thenumber - player2guess 

    if p1 > p2: 
     print player1 + " won!" 

    elif p2 > p1: 
     print player2 + " won!" 

Tout fonctionne bien jusqu'à ce que j'obtiens cette erreur:

Traceback (most recent call last): 
    File "C:\Python27\Script 1", line 11, in <module> 
    if choice == yes: 
NameError: name 'yes' is not defined 

A ma connaissance, je ne pense pas que je l'ai fait quelque chose de mal, mais encore une fois Je suis un débutant en python.

Quelqu'un s'il vous plaît aidez-moi avec ceci.

EDIT: (Ceci est python 2.7 si elle fait une différence)

Répondre

4

Je suppose que vous avez besoin des guillemets autour yes: choice =='yes', sinon python pensera que yes est une variable.

+0

Fonctionne. Merci pour l'aide. –

2

essayez if choice == 'yes':. Vous le comparez avec un symbole qui n'est pas défini.

Notez qu'il n'y a pas de 'variables' en Python, seulement des symboles et leurs valeurs (avec leurs types compris en interne par l'interpréteur de langage). Considérez-les comme des noms que vous donnez à divers objets. Ils sont tous des symboles.

+0

"Il n'y a pas de variables en Python" est une désinformation stupide et confuse. –

+0

@NedBatchelder ce n'est pas stupide. Les variables viennent avec un type. Les symboles sont typés dynamiquement. Il y a évidemment une différence. –

+0

Les variables en Python ne sont pas fournies avec un type. Vous supposez que le mot "variable" signifie juste une chose. Cela signifie différentes choses dans différentes langues. Une meilleure déclaration est: "Les variables dans Python ne sont que des noms qui peuvent se référer à des valeurs." –

Questions connexes