关于 try and except 使用列表的问题

Question about try and except using lists

所以我做了这个程序,它要求你输入一个随机数, 号码只能来自列表; [1, 2, 3, 4, 5, 6, 10] 仅此而已。

如果不在列表中,我想制作 if so acceptables = [1, 2, 3, 4, 5, 6, 10] 它将打印“非法号码”并退出()程序。但是我做不到。

这是我尝试过的:

invalids = ['7', '8', '9', '11']
acceptables = [1, 2, 3, 4, 5, 6, 10]
try :
    toss = int(input("Toss a number from 1 to 6 (10 included): "))
except ValueError:
    print("Invalid")

if toss != acceptables:
    print("Illegal Numbers!")
    time.sleep(2)
    exit()

但是好像不行,有人能帮忙吗?

if toss != acceptables:替换为if toss not in acceptables:

这是因为如果执行了except块,toss变量就没有值了。最好的选择是将后面的代码包含到 try 块中:

invalids = ['7', '8', '9', '11']
acceptables = [1, 2, 3, 4, 5, 6, 10]
try :
    toss = int(input("Toss a number from 1 to 6 (10 included): "))
    if toss not in acceptables:
        print("Illegal Numbers!")
        time.sleep(2)
        exit()
except ValueError:
    print("Invalid")