算数运算符
Python里支持很多算数运算符
+加-减*乘/除**幂运算//整除%取余
print(1 + 1) # 2
print(4 - 2) # 2
print(3 * 2) # 6
在Python3里,两个整数相除,得到的结果会是一个浮点数
print(6 / 2) # 3.0
print(9 / 2) # 4.5
print(3 ** 3) # 27
print(81 ** (1 / 2)) # 9.0
print(10 / 3) # 3.33333333333333
print(10 // 3) # 3整除,只取整数部分
print(10 % 3) # 1 取余,只取余数部分
print(1928 % 9876) # 1928
字符串里有限度的支持加法和乘法运算符
加法运算符:只能用于两个字符串类型的数据, 用来拼接两个字符串
print(‘hello’ + ‘world’) # 将多个字符串拼接为一个字符串
print('18’+ 1) # 在Python里,数字和字符串之间,不能做加法运算
乘法运算符:可以用于数字和字符串之间,用来将一个字符串重复多次
print(‘hello’ * 2) # hellohello
赋值运算符的使用
=等号在计算机编程里,我们称之为赋值运算符,和数学里的等号有-定的区别
数学
1+1=2
4=4
计算机编程里,等号(赋值运算符)作用是将等号右边的值赋值给等号的左边
等号的左边一定不能是常量或者表达式
a = 4
10 = x
3+3 = m
m = 3 + 3
x = 1
X=X+2
复合赋值运算符
x += 2 # x = x + 2
print(x) # 3
x -= 1 # 2
print(x)
x /= 1 # 2
print(x)
x **= 5
print(x) # 32.0
x //= 2
print(x) # 16.0
x %= 2 # x = x % 2
print(x)
赋值运算符的特殊用法
等号连接的变量可以传递赋值
a = b = c = d = ‘hello’
print(a, b, c, d)
m, n = 3, 5 # 拆包
print(m, n)
x = ‘hello’, ’ good’, 'yes ’
print(x) # (‘hello’, ‘good’, ‘yes’)|
拆包时,变量的个数和值的个数不一致,会报错
y,z = 1,2,3,4,5
print(y, z) 报错
o,p,q = 4,2
print(o, P, q) 报错
*星号表示可变长度
o, *p, q = 1, 2, 3, 4, 5, 6
print(o, p, q) # 1[2,3,4,5] 6
*o, p, q = 1, 2, 3, 4, 5, 6
print(o, p, q) # [1,2,3,4]5 6
比较运算符
大于〉于<大于等于>=小于等于<= 不等于!= / <> 等等与==
print(2 > 1) # True
print(2 < 4) # True
print(4 >= 3) # True
print(4 <= 9) # True
print(5 != 6) # True
print(‘he11o’ == ‘hello’) # True
比较运算符在字符串里的使用
字符串之间使用比较运算符,会根据各个字符的编码值逐- - 进行比较
ASCII码表
print(‘a’ < ‘b’) # True
print(‘a’ > ‘b’) # False
print(‘abc’ > ‘b’) # False
数字和字符串之间,做==运算的结果是False,做!=结果是True,不支持其他的比较运算
print(‘a’》90)
print(‘a’ == 90) # False
print(‘a’ != 97) # True
逻辑运算符的使用
逻辑运算符 逻辑与and 逻辑或or 逻辑非not
逻辑与规则:只要有一个运算数是False,结果就是False;只有所有的运算数都是True,结果才是True
print(2 > 1 and 5 > 3 and 10 > 2) # True
print(3 > 2 and 5 < 4 and 6 > 1) # False
逻辑或规则:只要有一个运算数是True,结果就是True;只有所有的运算数都是False,结果才是False
print(3 > 9 or 4 < 7 or 10 < 3) # True
print(3 > 5 or 4 < 2 or 8 < 7) # False
逻辑非运算:True ==> False False ==> True
print(not (5 > 2)) # False
逻辑运算符的短路问题
逻辑与运算,只有所有的运算数都是True,结果才为True
只要有一个运算数是False,结果就是False
4 > 3 and print(‘he11o world’)
4 < 3 and print(‘你好世界’) # 逻辑与运算的短路问题
逻辑或运算,只有所有的运算数都是False,结果才是False
只要有一个运算数是True,结果就是True
4 > 3 or print(‘哈哈哈’)
4 < 3 or print(‘嘿嘿嘿’)
逻辑运算的结果,- -定是布尔值吗? 不一定
逻辑与运算做取值时,取第-个为False的值;如果所有的运算数都是True,取最后- -个值
print(3 and 5 and 0 and ‘hello’) # θ
print( ‘good’ and ‘yes’ and ‘ok’ and 100) # 100
逻辑或运算做取值时,取第-个为True的值;如果所有的运算数都是False,取最后一个值
print(0 or [] or ‘lisi’ or 5 or ‘ok’) # lisi
print(0 or [] or {} or ()) # ()
按位与& 按位或/ 按位异或^ 按位左移<< 按位右移>> 按位取反~
a = 23
b = 15
print(a & b)
print(a | b)
print(a ^ b)
x = 5
print(x << 3) # 40 a << n ==> p*2的n次方
y = 15
print(y >> 2) # 3 a >> n ==> a除以2的n次方(取整数)