python中的多条件IF条件

2024-09-28 22:03:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试循环一个数组,跳过sertain产品类型。我的问题是它没有跳过它们。无论产品类型是否在跳过列表中,都会发生相同的情况。你知道吗

for i in source:
    if (i["product_type"] == 00 and i["product_type"] == 35 and  i["product_type"] == 72):
        print i["product_name"] + " has been skipped"
    else:
        # Upload product

Tags: andnamein类型source列表forif
2条回答

你应该or把它们放在一起而不是and,因为i["product_type"]只能有一个值,我假设这只是一个打字错误。你知道吗

if (i["product_type"] == 0 or i["product_type"] == 35 or i["product_type"] == 72):

但是,使用以下命令更简单、更简洁

if i["product_type"] in (0, 35, 72):

这里的问题是,你不可能在一个语句中包含所有这些条件。对于同一属性,一个项不能有多个值。您的变量i只有一个product_type属性,因此您实际上要寻找的是一种针对以下任何一个选项进行测试的方法:

if i["product_type"] == 0 or i["product_type"] == 35 or  i["product_type"] == 72:
  #

您希望使用or运算符而不是and运算符。你知道吗

下面是一个可读性更好的代码版本(假设产品类型值为int:

if i["product_type"] in [ 0, 35, 72 ]:
  print i["product_name"] + " has been skipped"
else:
  # Upload product

此代码将检查列表中是否引用了product_type值:
[ "00", "35", "72" ]。你知道吗


最后一点,您不需要用parethesis包装您的条件语句(例如使用JS/PHP)。您可以省略它们:

if "foo" in [ "foo" ]:
  pass

工作原理与

if ("foo" in [ "foo" ]):
  pass

相关问题 更多 >