如果功能错误。不等于功能不工作

If function error. Not equals to function not working

我正在写这个程序,它运行良好, 我离开它一段时间,代码停止工作。

请帮我完成这个功能; 这是代码:

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

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

所以应该发生的是,用户将在投掷中输入一个数字,然后它会检查 如果数字来自 acceptables,否则它将退出程序。

但是现在,我在 acceptables 中输入了数字 ,它仍然显示 “非法号码”并退出程序。

这是新的 python3 更新还是我错过的?请帮忙

你有两个问题:

  1. toss = input(...) returns 一个字符串,但您想将该值与 ints 进行比较。尝试类型转换:toss = int(toss)str"1" 转换为 1.

  2. 您正在使用 if toss != acceptables: 检查号码是否在列表中,这将始终是 False,因为 int(或 str目前)永远不会等于 list。您想要检查 toss 是否在 acceptables 的列表中。试试这个:if toss in acceptables:

有几个问题。首先,这一行:

toss = input("Toss a number from 1 to 6 (10 included): ")

会将您提交的任何内容的字符串值存储到 toss 中。您可能希望此行显示为:

toss = int(input("Toss a number from 1 to 6 (10 included): "))

确保在用户键入 non-integer 字符串时得到整数或 ValueError

其次,这一行:

if toss != acceptables:

正在检查 toss 是否是一个 int,不等于一个列表,本质上是这样做的:if 5 != [1, 2, 3, 4, 5, 6, 10]。相反,您可能希望这样阅读:

if toss not in acceptables:

检查此号码是否在您的可接受号码列表中。