Python中的无限循环无法停止
我试图做一个循环,但这一直给我一个无限的循环,有人能帮我吗Python中的无限循环无法停止,python,loops,Python,Loops,我试图做一个循环,但这一直给我一个无限的循环,有人能帮我吗 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!') 当难度在一定范围内时,您正在打印。唯一的问题是,在循环之前,难度变量只设置一次。尝试将其移动到循环中。使用
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!')
当难度在一定范围内时,您正在打印。唯一的问题是,在循环之前,难度变量只设置一次。尝试将其移动到循环中。使用操作符链接,然后再次获取输入
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'))
首先试着选择难度,如果可以,那么你就不会进入循环,如果值不好,那么你就在循环中,直到你为难度选择一个合适的值 编辑: 我为您添加了一个名为safe_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()
以下内容更像是您想要实现的:
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循环需要同时包含输入行和print语句。break语句用于退出循环,并在输入正确的值后在循环后继续运行。发生的情况无效?您需要重新输入,以便其值可以更改。如果您尝试先读取某些内容,而不是在while中,则无法更新循环中的难度。