我试图做一个循环,但这会让我无限循环,任何人都可以帮助我吗?
difficulty = int (input ( '"1" for Easy \n"2" for Medium \n"3" for Hard\n'))
while difficulty <= 0 or difficulty >= 4 :
print ('Invalid Choice. Try Again!')
答案 0 :(得分:1)
使用运算符链接并再次获取输入
while not 0 < difficulty < 4:
print('Invalid Choice. Try Again!')
difficulty = int(input('"1" for Easy \n"2" for Medium \n"3" for Hard\n'))
答案 1 :(得分:0)
当难度在一定范围内时,您正在打印。唯一的问题是难度变量仅在循环之前设置一次。尝试在循环中移动它。
答案 2 :(得分:0)
首先尝试选择难度,如果它没问题,那么你不进入循环,如果值不好,那么你就在内,直到你选择一个合适的值为止困难。
修改强>
我为您添加了一个名为safe_input的函数,这样您就可以管理用户输入字符串或错误字符的时间。我把它设为通用的,因为你可以定义文本和user_input的预期类型。
def safe_input(text, instance):
user_input = raw_input(text)
try:
return instance(user_input)
except:
return False
def choose_difficulty():
return safe_input(text= '"1" for Easy \n"2" for Medium \n"3" for Hard\n', instance=int)
difficulty = choose_difficulty()
while difficulty <= 0 or difficulty >= 4:
print ('Invalid Choice. Try Again!')
difficulty = choose_difficulty()
答案 3 :(得分:0)
以下内容更像是您想要实现的目标:
while True:
difficulty = int (input ( '"1" for Easy \n"2" for Medium \n"3" for Hard\n'))
if 0 < difficulty < 4:
break
print('Invalid Choice. Try Again!')
while循环需要在其中包含input
行和print
语句。输入正确的值时,break
语句用于退出循环(并在循环后继续运行)。