Python游戏输入验证While循环满足条件后仍无限运行问题
解决你的While循环无限运行问题
嘿,我一眼就发现问题所在了——你的循环条件逻辑出错啦!
你写的循环条件是:
while initialize != 'yes' or initialize != 'no':
咱们拆解一下这个逻辑:
- 当用户输入
yes时,initialize != 'yes'是假,但initialize != 'no'是真,OR逻辑只要有一个为真就整体为真,所以循环会继续执行。 - 当用户输入
no时,initialize != 'no'是假,但initialize != 'yes'是真,同样OR逻辑结果为真,循环还是停不下来。
这就导致不管输入yes还是no,循环条件永远成立,自然会无限运行下去。
修正方案
把循环条件里的or改成and就行啦,这样只有当输入既不是yes也不是no的时候,循环才会继续:
initialize = '' while initialize != 'yes' and initialize != 'no': print('\nWould you like to play?') initialize = input('Yes or No? ').lower().strip() if initialize == 'yes': print('\nHappy to see you.\n') elif initialize == 'no': print('\nNo worries.\n\nThanks for stopping by!') else: print('\nSorry, I didn\'t catch that') print('please wait as game loads') print('\nYou\'re very important to us\n')
逻辑解释
修正后的条件initialize != 'yes' and initialize != 'no'意思是:只有当输入既不是yes,也不是no的时候,才继续循环。当用户输入yes或no时,这个条件会变成假,循环就会终止,接着执行后面的游戏加载提示啦。
内容的提问来源于stack exchange,提问作者Neel Sharma
相关产品推荐
相关产品推荐

