检查空字符串变量是否填充了某些字符时,表达式的计算结果始终为true。如果新创建的字符串值为空,则应为false,它不包含任何字符,更不用说检查的字符了。在
当我硬编码一个随机字符时,如果它不是正在检查表达式的字符,则计算结果为false。在
difficulty = ''
while difficulty not in 'EMH':
print('Enter difficulty: E - Easy, M - Medium, H - Hard')
difficulty = input().upper()
我希望看到调试器进入while循环。实际发生的是它继续通过while块而不执行。在
对于do-while循环条件,这是一个很好的例子。但是,python没有。请检查以下款式是否适合您:
我很喜欢@Emmet B的建议,在循环中使用['E','M','H']而不是字符串。它也是有意义的,因为您希望一个字符作为输入,而不是字符集。在
任何字符串中都存在空字符串。因此,当
difficulty
等于''
时,条件difficulty not in 'EMH'
将计算为False
;因此while循环的主体不会被执行。在一个更好的方法可能是通过}之类的东西不会打断循环,或者从一开始就避免它开始
list('EMH')
将字符串EMH
转换为列表,这样EM
或{同样,正如@Blckknght建议的那样,更好的选择是使用默认值
^{pr2}$None
来解决困难。在我想你需要的是一个列表,而不是一个字符串:
相关问题 更多 >
编程相关推荐