Python中的无限循环无法停止

时间:2015-07-22 13:14:40

标签: 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!')

4 个答案:

答案 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语句用于退出循环(并在循环后继续运行)。