跳至主要內容

布尔值与运算符

刘春龙原创...大约 4 分钟Python教程文档

布尔值

Python2 中没有布尔值,直接用数字 0 表示 False, 用数字 1 表示 True。

Python3 中,把TrueFalse定义成了关键字,但他们的本质还是 1 和 0,甚至可以和数字相加。

提示

在 Python 语言底层,会将布尔值 True 看作 1,将布尔值 False 看作 0,尽管从表面上看,True 和 1、False 和 0 是完全不同的两个值,但实际上,它们是相同的。


在 Python 语言中有一些特殊的布尔类型值为 False,例如 False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空 range 对象、空迭代对象。其他情况,均为 True。

a = True
b = 3
c = a + b  # c的值是:4
print(c)
print("空字符串的布尔类型的值:", bool(""))  # False
print("空列表布尔类型的值:", bool([]))  # False
print("None布尔类型的值:", bool(None))  # False
print("0布尔类型的值:", bool(0))  # False
print("字符串True和False转成布尔都是True:", bool("False"))  # True

运算符

逻辑运算符

运算符格式说明
or 逻辑或x or yx 为 true,则不计算 y,直接返回 true;x 为 false,则返回 y
and 逻辑与x and yx 为 true,则返回 y 的值 x 为 false,则不计算 y,直接返回 false
not 逻辑非not xx 为 true,返回 false;x 为 false,返回 true
a, b, c = 10, 20, 30
print((a < b) and (b < c))  # and并且  输出结果是True
print((a > b) or (b > c))  # or或者  输出结果是False
print(not (b < c))  # not非   输出结果是False

比较运算符

所有比较运算符返回 1 表示真,返回 0 表示假。这分别与特殊变量TrueFalse等价。

以下假设变量a为15,变量b为30

运算符描述实例
==等于 - 比较对象的值是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象的值是否不相等(a != b) 返回 true.
>大于 - 返回 x 是否大于 y(a > b) 返回 False。
<小于 - 返回 x 是否小于 y。(a < b) 返回 true。
>=大于等于 - 返回 x 是否大于等于 y。(a >= b) 返回 False。
<=小于等于 - 返回 x 是否小于等于 y。(a <= b) 返回 true。
a = 4
print(a <= 30)
# 关系运算符可以连用
if 3 < a < 10:
    print("a在3和10之间")

加法操作补充

  • 数字相加 3+2 结果是 5
  • 字符串拼接 “3”+“2”结果是 “32”
  • 列表、元组等合并 [10,20,30]+[5,10,100]结果是[10,20,30,5,10,100]

乘法操作补充

数字相乘 3*2 结果是 6
字符串复制 “jiemei”*3 结果是 ”jiemeijiemeijiemei”
列表、元组等复制 [10,20,30]*3 结果是 [10,20,30,10,20,30,10,20,30]

增强赋值运算符(补充)

复合赋值可以让程序更加精炼,提高效率

运算符描述示例等价于
+=加法赋值字符串拼接sum += na += “sxt”sum = sum + na = a + “sxt”
-=减法赋值num1 -= nnum = num - n
*=乘法赋值a *= ba = a * b
/=浮点除赋值a/=ba = a / b
//=整数除赋值a//=ba = a//b
%=取余赋值a%=ba = a % b
**=幂运算赋值a**=2a = a**2
<<=左移赋值a<<=2a = a<<2
>>=右移赋值a>>=2a = a>>2
&=按位与赋值a&=ba = a&b
|=按位或赋值a|=ba=a|b
^=按位异或赋值a^=ba = a^b

⚠️ 与 C 和 JAVA 不一样,Python 不支持自增(++)和自减(--)

同一运算符

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。

运算符描述
isis 是判断两个标识符是不是引用同一个对象
is notis not 是判断两个标识符是不是引用不同对象

is== 区别:

is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。

== 用于判断引用变量引用对象的值是否相等,默认调用对象的 __eq__()方法。

a = 20
b = 20
c = 30
print("a和b是同一个对象", a is b)  # 执行结果:True
print("a和c是同一个对象", a is c)  # 执行结果False
print("a和c不是同一个对象", a is not c)  # 执行结果True

提示

is 比较两个对象的 id 值是否相等,是否指向同一个内存地址
== 比较的是两个对象的内容是否相等,值是否相等
is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is

a = 1000
b = 1000
a == b  #True
a is b  #命令行下是False。 文件下执行是True
c = 10
d = 10
c is d  #True

成员运算符

成员运算符测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False
not in不在,则返回 True
a = "python"
b = "py"
print(b in a)    #True
c = [10,20,30]
print(10 not in c)  #False
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7