-1

我有一大段代码如下:

maybeYes = input("Please enter Yes to start.")
if maybeYes == "Yes":
    pass
else:
    print "Wrong answer."

它给出了以下错误:

NameError: name 'Yes' is not defined

我该如何解决?

4

3 回答 3

1

假设这是 python,请使用 raw_input 而不是 input。输入被认为是危险的,因为它会评估您输入的任何内容,所以如果您这样做:

   x = input()

并输入 2+4,x 将等于 6。 raw_input 只是给你输入的字符串。

于 2012-10-28T21:31:51.823 回答
1

使用raw_input()代替input()

>>> maybeYes = raw_input("Please enter Yes to start ")
Please enter Yes to start yes
>>> maybeYes
'yes'

想象一下,input()如果您要直接在解释器中输入,那么pythonyes需要'yes'知道您的意思是 string yes

编辑:

您需要使用while循环。

while raw_input("Please enter Yes to start: ") != 'Yes':
       print 'Wrong'

print 'Correct'

print 'Doing something else...'

#Carry on here 

输出:

Please enter Yes to start: nowg
Wrong
Please enter Yes to start: wggwe
Wrong
Please enter Yes to start: Yes
Correct
Doing something else...
于 2012-10-28T21:33:02.150 回答
0

此版本将接受“是”的任何变体,例如“是”、“是”、“是”、“是”等。

answer = raw_input('Please enter Yes to start: ')
while answer.upper() != 'YES':
   print 'Sorry, your entered something else'
   answer = raw_input('Please enter Yes to start: ')
print "Thank you, you entered ", answer
于 2012-10-28T22:20:41.250 回答