Python:如果第一个变量是True,检查第二个变量?

Ths*_*aek 5 python if-statement python-3.x

我有一个脚本通过if语句检查bool然后执行代码.我想要做的是这样做:

if variable a is True, check if b is True and execute code
if variable a is False, execute the same code mentioned before
Run Code Online (Sandbox Code Playgroud)

我目前拥有的简化版本是:

if a:
    if b:
        print('foo')
else:
    print('foo')
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做这个,不需要我写print('foo')两次?

Jer*_*meJ 14

if not a or (a and b):
    print('foo')
Run Code Online (Sandbox Code Playgroud)

让我们一步一步地说:什么时候print('foo')执行?

  1. abTrue.
  2. else什么时候执行else?以前的相反if如此not a.

最后,您希望以'foo'一种情况或另一种情况显示.

编辑:或者,通过简化逻辑方程:

注意: 您可能希望避免这种情况,除非您知道自己在做什么!清晰度往往比短缺更好.相信我的建议!我经历过那里!;)

if not a or b: 
   print('foo')
Run Code Online (Sandbox Code Playgroud)

因为如果not a不是True,则a必须是True(第二部分or),所以a and b可以在短短被简化b(因为我们知道作为一个事实,a就是True在这种情况下,所以a and b是一样的True and b,所以我们可以安全的将第一部分) .