Python 将多个变量与1个字符串进行比较的if语句
所以不管我怎么用这些if stamentsPython 将多个变量与1个字符串进行比较的if语句,python,python-3.x,Python,Python 3.x,所以不管我怎么用这些if staments if (x,y,z == "no no yes"): print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY") if (x,y,z == "no yes no"): print ("PERFECT SOLDOER DETECTED, REPORT TO US ARMY") if (x,y,z == "yes no no"): print ("LONER ROBOT DETECTED
if (x,y,z == "no no yes"):
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
if (x,y,z == "no yes no"):
print ("PERFECT SOLDOER DETECTED, REPORT TO US ARMY")
if (x,y,z == "yes no no"):
print ("LONER ROBOT DETECTED, DESTROY IMMEDIATELY")
if (x,y,z == "no yes yes"):
print ("THIS ROBOT HURTS HUMANS")
if (x,y,z == "yes yes no"):
print ("This robot is self destructive")
if (x,y,z == "yes no yes"):
print ("This robot disobeys orders")
if (x,y,z == "no no no"):
print ("YOU HAVE A PHYCOPATH ROBOT, DESTROY AT ALL COSTS")
它只是打印所有的字符串,有人能帮我处理一下吗?x,y,z==“no-no-yes”
计算为三个值的元组:x
,y
,以及一个布尔值(真/假),指示z
是否等于“no-no-yes”
。这是一个长度非零的元组,它是真实的,因此所有的条件都通过了
相反,写(x,y,z)=(“否”、“否”、“是”)
等等
(x,y,z == "no no yes")
这并没有达到您期望的效果。首先,不能同时将多个变量与单个字符串进行比较。您需要将其拆分为单独的支票
但是为什么您的代码要打印所有字符串?如果您是Python新手,这可能有点令人惊讶:Python中的逗号分隔元组元素,因此x,y,z
将是一个包含三个元素的元组,x
,y
和z
。元组永远不会等于字符串,那么为什么所有的检查都成功了呢
原因是=
运算符的绑定强度大于逗号。所以你实际上写的是这样的:(x,y,(z==“no-no-yes”)
。因此,将z
(且仅z
)与字符串进行比较,并将结果作为第三个值放入元组中x
和y
作为元组的第一个和第二个元素
在Python中,非空元组的计算结果恰好是True
。因此,以下措施始终有效:
if (x, y, False):
print('Works')
如上所述,要修复代码,您必须针对每个值分别检查每个变量:
if x == "no no yes" or y == "no no yes" or z == "no no yes":
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
if x == "no" and y == "no" and z == "yes":
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
由于您正在检查是否相等,因此也可以在此处使用
中的运算符,逻辑颠倒:
if "no no yes" in (x, y, z):
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
您可以从以下问题了解更多信息(仅从另一个方向):
正如我刚刚从中了解到的,您可能希望将这些字符串拆分为单独的字符串,并分别对每个变量进行检查:
if x == "no no yes" or y == "no no yes" or z == "no no yes":
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
if x == "no" and y == "no" and z == "yes":
print ("REBEL ROBOT DETECTED, DESTROY IMMEDIATELY")
如果x==y==z==“literal”
可能就是您要搜索的内容——这使用比较运算符链接(python中的一个功能)