-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であると仮定すると、inputの代わりにraw_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()インタプリタに直接入力する場合と考えてください。したがって、Pythonが文字列を意味していることをyes認識できるようにする必要があります。'yes'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

このバージョンは、「Yes」のバリエーションを受け入れるため、「yes」、「YES」、「YesS」、「yES」などです。

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 に答える