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")