Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';不是';操作人员_Python_Boolean_Boolean Logic - Fatal编程技术网

Python';不是';操作人员

Python';不是';操作人员,python,boolean,boolean-logic,Python,Boolean,Boolean Logic,输出 x = 0 if not x: print(bool(x)) print("Evaluated True") else: print(bool(x)) print("Evaluated False") 为什么不执行else块? 我认为x=0是False,而不是x是True。还是我误解了布尔定义?当if语句中的表达式为true时,将执行if块。由于x为0,因此not x为真,这意味着if块将不执行else块 打印(bool(x))将打印false,因为x

输出

x = 0

if not x:
    print(bool(x))
    print("Evaluated True")

else:
    print(bool(x))
    print("Evaluated False")
为什么不执行else块?
我认为x=0是
False
,而不是x是
True
。还是我误解了布尔定义?

当if语句中的表达式为true时,将执行if块。由于x为0,因此
not x
为真,这意味着if块将不执行else块


打印(bool(x))将打印false,因为x为0

因此,正如您所说:
not x==True
因此执行if语句。

您必须打印if表达式“not x”。然后您将看到not x==not False==True

False
Evaluated True
答复:

x = 0

if not x:
    print(bool(not x))
    print("Evaluated True")

else:
    print(bool(not x))
    print("Evaluated False")
这是真的,这就是为什么执行if后面的行。因此,else不会被执行。只有当if语句为false时,才会执行它

if not x

注意:布尔值适用于除0以外的所有整数

布尔值适用于除0以外的所有整数
非x==True
因此对其进行计算
True

>>> x = 0
>>> if x:
...   print(bool(x), "Evaluated True")
... else:
...   print(bool(x),"Evaluated False")
... 
False Evaluated False
您的输出是正确的。 您的布尔概念是正确的(x=0为假,而不是x为真),但您的实现是错误的

False
Evaluated True
在代码中:

if not x
表示
if(not x)==True
,这是绝对正确的,因此if条件运行

如果(某些情况下)使用
,有时会很棘手。这有时也是由于缺少括号


您可以使用此
实现所需的输出,如果(非x)=False

欢迎使用代码段格式化您的代码正如您所说,
非x
确实是
真的
,这就是为什么执行
如果执行了
的原因…您正在测试的不是x,而是打印x和“真”。您需要测试not x、打印not x和“true”。我想你刚刚错过了测试x不会改变它的值。所以测试不是x而是打印
bool(x)
有点荒谬意味着if语句中的条件必须为“True”才能执行if块,对吗?
False
Evaluated True
x = 0

if not x:
    print(bool(x))
    print("Evaluated True")