检查输入是否在 python 中的数字列表中

Checking if input is in a list of numbers in python

numbers = [1,2,3,4,5,6,7]
x = input()
if x in numbers:
    print("Hey you did it")
else:
    print("Nope")

我不确定我在这里做错了什么,但它总是告诉我我的电话号码不在列表中..即使它在列表中。不过,它可以很好地处理字符串。

帮助将不胜感激。谢谢!

输入是一个字符串,因此您是在将字符串与整数进行比较。先转换为 int 然后做成员测试:

numbers = [1,2,3,4,5,6,7]
x = input()
if int(x) in numbers:
    print("Hey you did it")
else:
    print("Nope")

为了让这个稍微更稳健一点,你应该处理如果用户没有输入整数就会发生的 ValueError(总会有一个用户输入 'cheeseburger' 而不是数字) :

numbers = [1,2,3,4,5,6,7]
x = input()
try:
    i = int(x)
    if i in numbers:
        print("Hey you did it")
    else:
        print("Nope")
except ValueError:
    print("You did not enter a number")