我正在为学校做一个小项目,我们需要设置一个1到3之间的难度,但是当有人输入一个错误的数字,他们会得到一行,说请在1和3之间选择,但问题应该重复本身,现在代码刚刚结束,当你输入一个错误的数字。你知道吗
difficulty = int(input("Difficulty: "))
while 0 > difficulty > 4:
print("This is not a valid difficulty, please choose 1, 2 or 3")
difficulty = int(input("Difficulty: "))
if 0 < difficulty < 4:
print("The playing board was created with difficulty: " + str(difficulty))
“当难度在0以下,难度在4以上时,永远不可能是真的,因为没有同时小于0和大于4的数字。格式化条件最可读的方法是使用
range
:也可以省略
if
,因为循环已经确保值在有效范围内;无需再次检查。你知道吗while循环
0 > difficulty > 4
从不执行,因为该条件的计算结果总是False
,因为0 > 4
是False
,因此我将while循环重构为while difficulty > 4 or difficulty < 0:
,它检查难度是小于0还是大于4,也正如@deceze指出的那样,if
是不需要的,因为该条件只在我们确保难度介于0和4之间,不包括0和4所以答案变为
输出看起来像
编写while循环的另一种方法是,我们需要确保如果输入小于0或大于4,我们希望继续运行循环,这实际上可以通过
while not 0 < difficulty < 4:
实现然后答案将改为
试着这样做:
相关问题 更多 >
编程相关推荐