0.运算符
运算符用于执行程序代码运算。
1 + 2 = 3
1 和 2 是操作数, + 是操作符。
1.算数运算符
1.1符号
运算符 操作 运算 + 加 加数 + 加数 = 和 1 + 1 = 2 - 减 被减数 - 减数 = 差 2 - 0 = 2 * 乘 乘数 * 乘数 = 积 2 * 2 = 4 / 除 被除数 / 除数 = 商 5 / 2 = 2.5 % 求余 被除数 / 除数 = 商···余数 5 % 2 = 2···1 ** 幂 底数 ** 指数 = 幂 2 ** 3 = 8 // 整除 被除数 / 除数 = 整商 9 // 4 = 2(向下取整)
1.2实例
print ( 1 + 1 )
print ( 1 + 1.1 )
print ( 2 - 1 )
print ( 2 - 1.0 )
print ( 2 * 3 )
print ( 2 * 3.0 )
print ( 3 / 3 )
print ( 2 ** 4 )
print ( 2 ** 4.0 )
print ( 9 % 2 )
print ( 9 % 2.0 )
print ( 9 // 2 )
print ( - 9 // 2 )
1.3输出
2
2.1
1
1.0
6
6.0
1.0
16
16.0
1
1.0
4
- 5
1.4隐式计算
布尔值为
True 当成成 1 去计算
False 当成成 0 去计算
n = True
m = n * 2
print ( m)
n = ( 'x' > 'x' )
m = n * 2
print ( m)
2.比较运算符
2.1符号
比较运算,结果被转为 True / False。
运算符 描述 返回值 > 大于 a > b ( a 大于 b ) True,否则为False < 小于 a < b ( a 小于 b ) True,否则为False == 等于 a= b ( a 等于 b ) True,否则为False != 不等于 a != b ( a 不等于 b ) True,否则为False >=大于等于 a >= b ( a 大于等于 b ) True,否则为False <= 小于等于 a <= b ( a 小于等于 b ) True,否则为False
2.2实例
print ( 2 > 1 )
print ( 3 < 4 )
print ( 3 * 2 == 6 * 1 )
print ( 7 != 6 )
print ( 2 >= 2 )
print ( 3 <= 3 )
2.3输出
True
True
True
True
True
True
2.4字符比较
字符串比较大小,会转为ASCII表对应的十进制数来比较。
ASCII编码范围在 0 - 127 ,定义了 128 个单字节字符,
超过这个范围则需要转为Unicode编码表对应的十进制数来比较。
其中常用:
0 - 9 : 30 - 39
A-Z : 65 - 90
a-z : 95 - 122
两个字符串按左往右的顺序一位一位的依次做比较 , 前面比出大小就不用往后了 !
print ( 'abc' > 'bbc' )
print ( '10' > '5' )
3.增量赋值运算符
赋值符号左边的值称为 ` 左值 ` ,其他的都为 ` 右值 ` 。
3.1符号
运算符 描述 对等 = 赋值 将赋值符号 右边 的值赋值给 左边 / += 加法赋值 n += x, 左值先与右值相加,在把结果赋值给左值 n = n + x -= 减法赋值 n -= x, 左值先与右值相减,在把结果赋值给左值 n = n - x *= 乘法赋值 n *= x, 左值先与右值相乘,在把结果赋值给左值 n = n * x /= 除法赋值 n /= x, 左值先与右值相除,在把结果赋值给左值 n = n / x %= 求余赋值 n %= x 左值先与右值求余数,在把结果赋值给左值 n = n % x **= 幂赋值 n **= x 左值先与右值求幂,在把结果赋值给左值 n = n ** x //= 整除赋值 n **= x 左值先与右值整除,在把结果赋值给左值 n = n // x := 海象运算符 可在表达式内部为变量赋值,Python3.8 版本新增 /
3.2实例
a = 1
print ( a)
a += 1
print ( a)
a -= 1
print ( a)
a *= 2
print ( a)
a /= 2
print ( a)
b = 2
b **= 3
print ( b)
b //= 2
print ( b)
b %= 3
print ( b)
"""
print(n := 1) # 1
if (x:= 1):
print(1) # 1
"""
3.3输出
1
2
1
2
1.0
8
4
1
4.按位运算符
4.1符号
运算符 描述 实例 & 按位与 参与运算的两个值都为 1 结果为 1,否则都为 0 1 & 1 值为 1 ❘ 按位或 参与运算的有一个值为 1 结果为 1,否则都为 0 1 ❘ 0 值为 1 ^ 按位或 参与运算的两个值不同时结果为1,否则都为 0 1 ^ 0 值为 1 ~ 按位取反 按位取反,把1变成0,把0变成1 ~ 0 值为 1 << 左移 二进制为全部左移n为,高位丢弃,低位补0 num << 2 >> 右移 二进制为全部右移n为,低位丢弃,高位补0 num >> 2
4.2实例
print ( 1 & 5 )
"""
0001 --> 1
0101 --> 5
----------
0001 --->1
"""
print ( 1 | 5 )
"""
0001 --> 1
0101 --> 5
----------
0101 --->5
"""
print ( 1 ^ 5 )
"""
0001 --> 1
0101 --> 5
----------
0100 --->4
"""
print ( ~ 1 )
print ( ~ - 1 )
print ( 1 << 2 )
"""
0001 --> 1
----------
0100 --->4
"""
print ( 4 >> 2 )
"""
0100 --->4
----------
0001 --> 1
"""
4.3输出
1
5
4
- 2
0
4
1
5.逻辑运算符
5.1运符号
运算符 描述 实例 and 与 参与运算的两个值都为 1 结果为 1,否则都为 0 1 and 1 值为 1 or 或 参与运算的有一个值为 1 结果为 1,否则都为 0 1 or 0 值为 1 not 非 取反,把1变成0,把0变成1 not 0 值为 1
5.2实例
print ( True and True )
print ( True and False )
print ( True or False )
print ( True or True )
print ( not False )
print ( not True )
5.3输出
True
False
True
True
True
False
6.成员运算符
判断某个个体是否在否个群体当中。
6.1运符号
运算符 描述 实例 in 在指定序列中查找值,找到返回True,否则返回False x在y序列中返回True not in 在指定序列中查找值,没找到返回False,否则返回True x没在y序列中返回True
6.2实例
str1 = 'abc'
list1 = [ 'a' , 'b' , 'c' ]
print ( 'a' in str1)
print ( 'a' in list1)
print ( 'q' not in str1)
print ( 'q' not in list1)
6.3输出
True
True
True
True
7.身份运算符
判断两个对象的id值是否相对。
7.1运符号
运算符 描述 实例 is 判断两个标识符的引用是否为同一个对象,(id) x is x,返回True is not 判断两个标识符的引用是否为不同对象,(id) x is not x,返回False
= = 判断值是否相等
is 判断id值是否相等
id值相等,值一定相等,值相等id值不一定相等。
7.2实例
num1 = 1
num2 = 1
print ( num1 is num2)
print ( num1 is not num2)
print ( num1 == num2)
list1 = [ 1 , 2 , 3 ]
list2 = [ 1 , 2 , 3 ]
print ( list1 is list2)
print ( list1 is not list2)
print ( list1 == list2)
>> > num0 = 123456
>> > num1 = 123456
>> > num0 is num1
False
>> > num0 == num1
True
7.3输出
True
False
True
False
True
True
9.短路运算
Python解释器在做布尔运算时,只要能提前确定计算结果,
它就不会往后算了,直接返回结果。
print ( 1 and 2 )
print ( 1 and 2 and 3 )
print ( 1 and 0 and 2 )
print ( 1 and None and 2 )
print ( 1 or 2 or 3 )
print ( 7 > 2 or 1 )
print ( 7 + 2 or 1 )
print ( 1 and 2 or 0 )
print ( not 1 or 2 )
7 + 2 > 0 and 7 > 6 + 1 or 1 == 1
( 7 + 2 > 0 ) and ( 7 > 6 + 1 ) or ( 1 == 1 )
print ( ( 7 + 2 > 0 ) and ( 7 > 6 + 1 ) or ( 1 == 1 ) )
10.优先级
在我们在编写的时候应该人为的规定好优先级 , 使用括号进行区分。
优先级 符号 运算 1 ** 幂,最高优先级 2 ~ + - 按位取反,一元运算符 加 减 3 * / % // 乘 ,除,求余,整除 4 >> << 右,左位移 5 & 按位与 6 ^ 按位异或 7 ❘ 按位或 8 <= < > >= 大于等于,大于,小于,小于等于 9 == != 等于,不等于 10 = += -= *= /= %= //= **= 赋值,先(加 减乘 ,除,求余,整除 ,幂)计算在赋值 11 is ,is not 身份运算 12 in not in 成员运算 13 not and or 逻辑非,逻辑与,逻辑或