【问题标题】:while True: try: except ValueError:而真:尝试:除了ValueError:
【发布时间】:2021-01-30 17:28:14
【问题描述】:

我想做一个这样的函数:

while True:
    try:
        x = int(input("Please enter a number 1 - 5: "))
        print (x)
    except ValueError:
        print "Oops!  That was not a valid number. Try again..."

但是我怎样才能确保只有当 x 介于 0 到 6 之间时才会打印“x”。

【问题讨论】:

    标签: while-loop except


    【解决方案1】:

    如果要保持异常流,可以在用户输入无效值时引发异常。

    while True:
        try:
            x = int(input("Please enter a number 1 - 5: "))
            if x < 1 or x > 5:
                raise ValueError('Input not valid')   # go to except block
            print (x)
        except ValueError:
            print ("Oops!  That was not a valid number. Try again...")
    

    你也可以写一个循环而不引发异常:

    while True:
        x = int(input("Please enter a number 1 - 5: "))
        if x < 1 or x > 5:
            print ("Oops!  That was not a valid number. Try again...")
            continue  # skip print 
        print (x)
    

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2020-08-02
      • 2020-10-23
      • 1970-01-01
      • 2018-01-03
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多