1.1 python中运算符优先级
Python中运算符的优先级如下:
1. 括号:最高优先级,用于改变运算顺序。
2. 指数运算符:**
3. 一元运算符:+x、-x、~x、x+0、x-0、x*1、x/1、x%1、+x、-x、not x
4. 乘法、除法、取模、整除:*、/、%、//
5. 加法、减法:+、-
6. 位移运算符:>>、<<
7. 位运算符:&
8. 位运算符:^
9. 位运算符:|
10. 关系运算符:<>、<、>、<=、>=
11. 等于运算符:==
12. 不等于运算符:!=
13. 赋值运算符:=、+=、-=、*=、/=、%=、//=、**=、&=、^=、|=
14. 身份运算符:is、is not
15. 成员运算符:in、not in
1.2 赋值运算符
赋值运算符用于为变量赋值,也就是将变量赋予新的数值,它包括以下八种简单的赋值运算符:
a = 10 # 将10赋值给变量a
b = "Hello" # 将字符串"Hello"赋值给变量b
c = [1, 2, 3] # 将列表[1, 2, 3]赋值给变量c
a += 5 # 等同于 a = a + 5,将变量a的值增加5
b *= 3 # 等同于 b = b * 3,将变量b的值乘以3
c /= 2 # 等同于 c = c / 2,将变量c的值除以2
1.3 比较运算符
比较运算符,它又叫做关系运算符,用于比较数值大小相等,他会给计算机返回 “True” 或者 “False”,也就是布尔值,来告诉比较的结果是 “是” 还是 “否”。下面就是一些最常用的比较运算符。
a = 20
b = 10
if a > b:
print("a is greater than b")
a = 10
b = 20
if a < b:
print("a is less than b")
a = 10
b = 20
if a == b:
print("a and b are equal")
a = 10
b = 30
if a != b:
print("a and b are not equal")
a = 20
b = 10
if a >= b:
print("a is greater than or equal to b")
a = 10
b = 20
if a <= b:
print("a is less than or equal to b")
1.4 逻辑运算符
逻辑运算符大体常用的有三种,"and","or","not",and 是逻辑与,就是当逻辑运算符 and 左右两侧表达式的值都为 True 时返回 True,否则返回 False,我们可以理解为并且;or 就是逻辑或,就是当逻辑运算符 or 左右两侧表达式的值有任意一个是 True 就返回 True,两个都为 False 时才返回 False;而 not 是逻辑非,当逻辑运算符 not 后面接入的表达式值为 True,他就返回 False,当值为 False,就返回 True,正好是一个是与非颠倒的过程。
a = 10
b = 20
if a > 0 and b > 0:
print("Both conditions are true")
a = -10
b = 20
if a < 0 or b < 0:
print("At least one of the conditions is true")
a = 10
if not a > 20:
print("a is not greater than 20")
1.5 位运算符
位运算符为运算符,只能用于二进制的运算,计算时需将位对齐,一位一位计算,计算结果显示二进制结果对应的十进制数,就是说我们真正在计算的时候,需要将十进制的操作数转换为二进制的操作数,进行计算,在计算完毕后,再把作为结果的二进制数转换成十进制数进行输出。我们来具体认识一下有哪些位运算符。
位与运算符(&):将两个数的二进制表示进行与运算,如果两个相应的二进制位都为1,则结果为1,否则为0。
a = 0b1010 # 10 in binary
b = 0b1100 # 12 in binary
result = a & b # 8 in binary (1000)
print(bin(result)) # print the binary representation of the result
位或运算符(|):将两个数的二进制表示进行或运算,如果两个相应的二进制位中有一个为1,则结果为1,否则为0。
a = 0b1010 # 10 in binary
b = 0b1100 # 12 in binary
result = a | b # 14 in binary (1110)
print(bin(result)) # print the binary representation of the result
位非运算符(~):对一个数的二进制表示进行取反操作,将所有的1变为0,0变为1。
a = 0b1010 # 10 in binary
result = ~a # -11 in binary (the binary representation of -11 is inverted)
print(bin(result)) # print the binary representation of the result
位异或运算符(^):将两个数的二进制表示进行异或运算,如果两个相应的二进制位有一个为1且另一个为0,则结果为1,否则为0。
a = 0b1010 # 10 in binary
b = 0b1100 # 12 in binary
result = a ^ b # 6 in binary (0110)
print(bin(result)) # print the binary representation of the result
右移运算符(>>):将一个数的二进制表示向右移动指定的位数,并在右侧用0填充空位。
a = 0b1010 # 10 in binary
result = a >> 2 # 2 in binary (0010 in binary)
print(bin(result)) # print the binary representation of the result
左移运算符(<<):将一个数的二进制表示向左移动指定的位数,并在左侧用0填充空位。
a = 0b1010 # 10 in binary
result = a << 2 # 40 in binary (101000 in binary)
print(bin(result)) # print the binary representation of the result
1.6 身份运算符
身份运算符分为两种,一种是 is,如果两个操作数储存在同一物理地址就返回 True,一种是 is not,如果两个操作数不在一个物理地址返回 True。