python在运算符中的语法

python在运算符中的语法,python,syntax,logic,Python,Syntax,Logic,刚开始学习python我很容易就学会了,但后来我来到了IN操作符,我使用的网站显示了我无法使用的代码设置,我搜索了互联网和堆栈,但没有找到任何可靠的东西,他们写的方式让我相信你可以用这个语句检查一个列表中的多个变量 if name in ["John", "Rick"]: print "Your name is either John or Rick." 但是我还没有在互联网上的其他任何地方找到一个等价物,网站上的在线IDE没有给我一个语法错误,但是不管我在列表中有什么:name,它总

刚开始学习python我很容易就学会了,但后来我来到了IN操作符,我使用的网站显示了我无法使用的代码设置,我搜索了互联网和堆栈,但没有找到任何可靠的东西,他们写的方式让我相信你可以用这个语句检查一个列表中的多个变量

if name in ["John", "Rick"]:
    print "Your name is either John or Rick."
但是我还没有在互联网上的其他任何地方找到一个等价物,网站上的在线IDE没有给我一个语法错误,但是不管我在列表中有什么:name,它总是返回false

所以我的问题是:上面的代码对python有效吗?如果是这样的话,是什么让它返回真的呢?

正如您在评论中所说的,您将名称定义为一个列表,下面是Python所做的:

>>> name = ["John", "Rick" ,"tim", "george"] 
>>> name in ["John", "Rick"]
False
>>> name in ["John", "Rick", ["John", "Rick" ,"tim", "george"]]
True
>>> 
只检查y中是否有一个叫做x的元素。不检查x和y中是否有元素

这就是为什么下面的代码有效,但上面的代码无效:

>>> name = 'John'
>>> if name in ["John", "Rick"]:
...     print("Your name is either John or Rick.")
...     
... 
Your name is either John or Rick.
>>> 
在这种情况下,您需要:

>>> if any(i in ["John", "Rick"] for i in name):
...     print("Your name is either John or Rick.")
...     
... 
Your name is either John or Rick.
>>> 

好的,你的代码适合我。你能发布你用来测试它的代码吗?在这个if语句之前插入print reprname,再次运行该程序,并向我们展示它打印的内容。首先定义name=John或name=Rick这样的名称,然后运行你的代码,它会打印出你的名字是John或Rick。如果我使用此代码,如果[John,Rick]中的名字是[John,Rick]:打印您的名字是John或Rick,则它总是打印else name=[John,Rick,tim,george]。else:print else@zwol与您的编辑一起打印['John','Rick','tim','george']else