如何在python中为一个if语句提供多个条件

Soo*_*ole 11 python arguments if-statement function conditional-statements

所以我在python 3.1.5中编写了一些代码,要求有一个以上的条件才能发生.例:

def example(arg1, arg2, arg3):
    if arg1 == 1:
        if arg2 == 2:
            if arg3 == 3:
                print("Example Text")
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做时,如果arg2和arg3等于0,那么它不会打印任何东西.帮助?

SSu*_*710 20

我会用

def example(arg1, arg2, arg3):
     if arg1 == 1 and arg2 == 2 and arg3 == 3:
          print("Example Text")
Run Code Online (Sandbox Code Playgroud)

and操作者是相同的具有相同名称的逻辑门; 当且仅当所有输入都是1时,它将返回1. or如果您想要逻辑门,也可以使用运算符.

编辑:实际上,你的帖子中提供的代码与我一起工作正常.我没有看到任何问题.我认为这可能是你的Python的问题,而不是实际的语言.


bur*_*res 5

达里安·穆迪(Darian Moody)在他的博客文章中提出了一个很好的解决方案:

a = 1
b = 2
c = True

rules = [a == 1,
         b == 2,
         c == True]

if all(rules):
    print("Success!")
Run Code Online (Sandbox Code Playgroud)

True当给定的iterable中的所有元素都为true时,all()方法将返回。如果不是,则返回False

你可以阅读一点点在Python文档更多关于它在这里和更多的信息和例子在这里

(我在这里也用此信息回答了类似的问题- 如何在python中为一个if语句设置多个条件

  • 这在区分通过 or 相互独立的多个 and 语句时非常有用!这次真是万分感谢! (3认同)
  • 我搜索了“python 多个 if 语句”和“条件最佳实践”,发现了许多垃圾的基本定义。最后,我发现了“all”和“any”如何帮助定义“and”和“or”条件的多个 if 语句。谢谢! (3认同)
  • 请注意,这种方法不会短路 - 始终评估所有条件。在带有“and”的常规“if”条件中,Python 一旦遇到第一个错误条件就会停止计算。 (2认同)