当前位置:首页 » 编程语言 » python布尔值判断

python布尔值判断

发布时间: 2023-10-26 22:40:05

A. python中定义变量n = 0,那么n的布尔值是什么

0作为布尔值使用就相当于False,非0作为布尔值使用就相当于True。

如这个例子:
n=0
#输出是:
#0相当于False
print("0相当于True" if n else "0相当于False")

B. python-逻辑运算:not\and\or和布尔值:True\False

这东西在每一个语言都有,and or not 对应与、或、非三种逻辑运算;True和False是bool值,即真和假。
逻辑运算和布尔值经常用于if判断语句、循环语句的条件语句。
首先作为控制条件应该是一个布尔值,即真和假——True和false。
python的内置类——布尔类,只有两个实例:True和false。对于一般数字而言,0是False,非0是True;对于序列和容器类型,如列表、字典、字符串等,空为False,非空为True。
所以就有了这样的用法:

输出:1 为True

输出: 0 为 False

输出:a = '字符串'

这了可以看出一个实例本身可以作为控制条件,这是因为,解释器会先把这个实例转换为bool类型,然后根据这个bool类型执行程序。即bool(a) = True、bool(b) = False。
但是只用这样的方式控制程序显然不够,比如我希望a为空,b为非空的时候,我输出“我天下第一”,这怎么办?
如果不用not and or 就会写成这样:

输出:我天下第一
可以把a 看成False,b看成True。
从这里我们可以看到,我们用了两层if--else语句来判断a为空,b为非空的情况,那么我用逻辑运算呢?

输出:我天下第一
一样的:可以把a 看成False,b看成True。那么not a and b的意思就是:not False and True
这时候就是逻辑运算符的优先级的问题,这可以借鉴C语言的那本书《C程序设计》第五版的第92页

!非
算数运算符
关系运算符
&& 和 ||
赋值运算符

运算优先级从上到下,越来越低。
这是C语言里的,在python里就是:

not -------------->高
and 和 or ---------->低

所以我们先算not
于是 not False and True 就成所以了True and True这就很清楚了结果为True,所以“我天下第一”。
所以我们就可以总结出:
1.先将实例变为布尔值
2.在计算所有的not
3.根据语言特性,从左到右或者从右到左计算逻辑运算结果。
当然在python中是从左到右。

and 和 or 运算具有短路保护!什么意思呢?看一个栗子

1 or a
or的左边是1也就是True,根据or的运算法则,只要有一个真则为真,所以不管a是真还是假,结果都是真。

0 and a
and 左边为0,为False,同样,and只要有一个为假则为假,所以不管a是真还是假,结果都是假。
所以and 和 or 的结果可以根据第一个操作数的值来确定,那么他就不会对第二个操作数进行运算。
这个功能用起来要很小心,不然很可能会出现想不到的结果。

这里会输出什么呢?
输出:我天下第一

因为x是True,无论y and z 的结果是什么,这个语句的结果都是True,这就是短路保护,当然也有的人说惰性计算。

我觉得迭代器、生成器那个才叫惰性计算。

C. Python内部是如何判断一个对象是True还是False

作者:gao xinge
链接:https://www.hu.com/question/53708403/answer/139331035
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

内建函数boolpython中的所有对象都可以用内建函数bool来判断布尔值是True还是False,如下>>> bool(1)
True
>>> bool(0)
False
>>> bool(True)
True
>>> bool(False)
False
>>> def f(a):
return a
>>> bool(f)
True
>>> bool(__builtins__)
True
>>> import collections
>>> bool(collections)
True
__nonzero__函数和__len__函数内建函数bool的逻辑顺序: 如果对象没有实现__nonzero__函数或者__len__函数,返回True; 如果对象实现了__nonzero__函数,根据__nonzero__函数的返回值判断; 如果对象没有实现__nonzero__函数,但实现了__len__函数,根据__len__函数的返回值判断如下>>> # example one
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b

>>> t = f(0,1)
>>> bool(t)
True

>>> # example two
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b
def __nonzero__(self):
return self.a
def __len__(self):
return self.b

>>> t = f(0,1)
>>> bool(t)
False

>>> # example three
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b
def __len__(self):
return self.b

>>> t = f(1,0)
>>> bool(t)
False

D. python布尔值判断,python中的not具体表示是什么,举个例子说

not表示取反啊,相当于C语言中的非(!),例如:

#因为x为True,所以输出结果为1
x=True
ifx:
print1
else:
print2
#因为x为True,notx就是False了,所以输出结果为2
x=True
ifnotx:
print1
else:
print2

E. Python中的逻辑运算符有哪些呢

关键是一个变量/值是“相当于”True还是False。
None、False、空字符串""、0、空列表[]、空字典{}、空元组(),都相当于False。其它的都相当于True。

先说 A or B 。
如果A相当于True,那么返回A。否则,返回B。
所以,如果A和B都是False,那么A and B也是False (False or False == False)。

除了做布尔值的判断,C = A or B 这种写法,常用于不确定A是否为空值时,把B作为候补来赋值给C。

A and B相反。如果A相当于True,那么返回B。否则,返回A。
所以,只有A和B都是True时,A and B才是True (True and True == True)。

热点内容
b树磁盘存储 发布:2025-01-31 19:42:53 浏览:837
联想小新air15怎么配置环境 发布:2025-01-31 19:06:57 浏览:968
什么配置玩3a 发布:2025-01-31 19:05:22 浏览:586
phpoa系统 发布:2025-01-31 18:58:42 浏览:10
值e的编程 发布:2025-01-31 18:57:06 浏览:977
安卓手机的软件认证在哪里 发布:2025-01-31 18:57:01 浏览:535
android弹出来 发布:2025-01-31 18:56:56 浏览:232
办公室白领新解压方法 发布:2025-01-31 18:55:23 浏览:558
摩斯密码短长是什么意思 发布:2025-01-31 18:50:17 浏览:587
类的访问修饰 发布:2025-01-31 18:42:46 浏览:933