当我在第一个问题中按下“y”时,循环就会继续而不是停止。
Done = True
while Done:
quit = str(raw_input ("Do you want to quit? "))
if quit == 'y' :
Done=False;
attack = str(raw_input("Does your elf attack the dragon? "))
if attack=='y':
print ("Bad choice, you died.")
done=False;
print "Loop stopped"
我正在使用Python 2.7。
答案 0 :(得分:2)
您可能想要使用break
,这用于停止循环:
while True:
quit = str(raw_input ("Do you want to quit? "))
if quit == 'y' :
break # Add this
...
引用Python docs:
break语句与C语句一样,突破了最小的封闭for或while循环。
修改强>
您可以尝试使用无限循环(while True
),当您想要退出时,只需检查条件并使用break
语句。
答案 1 :(得分:1)
Python区分大小写。您需要确保Done
始终大写:
>>> Done = True
>>> while Done:
quit = str(raw_input ("Do you want to quit? "))
if quit == 'y' :
Done = False
attack = str(raw_input("Does your elf attack the dragon? "))
if attack=='y':
print("Bad choice, you died.")
Done = False
print("Loop stopped")
正如Makoto指出的那样,在Python 2.x中,上面打印语句中的括号是一种分组机制。但是在Python 3.x中,print
构成一个函数并需要括号。上面的代码适用于两个版本的Python。