2

所以我一直在研究一个两人“猜数字”的程序。但我只是在一件事上遇到了麻烦。

所以这里的代码:

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!"

在我收到此错误之前,一切都运行顺利:

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

据我所知,我不认为我做错了什么,但我还是 python 的初学者。

有人请帮我解决这个问题。

编辑:(这是python 2.7,如果它有所作为)

4

2 回答 2

4

yes我猜你需要在:周围加上引号choice =='yes',否则 python 会认为这yes是一个变量。

于 2012-10-27T20:16:58.743 回答
2

试试if choice == 'yes':。您正在将其与未定义的符号进行比较。

请注意,Python 中没有“变量”,只有符号及其值(语言解释器内部可以理解它们的类型)。把它们想象成你给各种对象起的名字。它们都是符号。

于 2012-10-27T20:17:07.230 回答