次のようなコードのチャンクがあります。
maybeYes = input("Please enter Yes to start.")
if maybeYes == "Yes":
pass
else:
print "Wrong answer."
次のエラーが発生します。
NameError: name 'Yes' is not defined
これを修正するにはどうすればよいですか?
次のようなコードのチャンクがあります。
maybeYes = input("Please enter Yes to start.")
if maybeYes == "Yes":
pass
else:
print "Wrong answer."
次のエラーが発生します。
NameError: name 'Yes' is not defined
これを修正するにはどうすればよいですか?
これがPythonであると仮定すると、inputの代わりにraw_inputを使用します。入力は、入力したものをすべて評価するため、危険であると見なされます。
x = input()
2 + 4と入力すると、xは6に等しくなります。raw_inputは、入力された文字列を提供するだけです。
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...
このバージョンは、「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