关于逻辑运算符#python#的问题,如何解决?

逻辑运算符(python)理解
a = 12
b = 20
#and
if(a and b):
    print("变量a和b都为true")
else:
    print("变量a和b有一个不为true")

#or
if(a or b):
    print("变量a和b都为true,或其中一个变量为true")
else:
    print("变量a和b都不为true")
    
#修改变量a的值
a = 0
if(a and b):
    print("变量a和b都为true")
else:
    print("变量a和b有一个不为true")


运行结果:

变量a和b都为true
变量a和b都为true,或其中一个变量为true
变量a和b有一个不为true

######问题:
主要是修改变量a的值下面这块。
个人理解,不应该是重新定义的a, a返回的是true嘛

任何非零数值或非空容器都被视为True,而0或空容器被视为False。在你的代码中,当a的值为12时,它被视为True,因此第一个if语句输出“变量a和b都为true”,第二个if语句输出“变量a和b都为true,或其中一个变量为true”。

但是,将a的值更改为0时,a被视为False,因此第三个if语句输出“变量a和b有一个不为true”。

请注意,逻辑运算符and和or的工作原理如下:

and:如果所有表达式都为True,则返回最后一个表达式的值,否则返回第一个为False的表达式的值。
or:如果至少有一个表达式为True,则返回第一个为True的表达式的值,否则返回最后一个表达式的值。
在第三个if语句中,当a的值为0时,a为False,因此整个表达式的值为False,因此输出“变量a和b有一个不为true”。