常见运算符
常见运算符
常见运算符有:
加(+)、减(-)、乘(*)、除(/)、等于(==)、取商(//)、取余(%)、赋值运算符(=)
print(10 + 4)
print(10 - 4)
print(10 * 4)
print(10 / 4)
print(10 == 4)
print(10 // 4)
print(10 % 4)
num = 10
print(num)
增量赋值
x += 100 # x = x + 100
y -= 100 # y = y - 100
z *= 100 # z = z * 100
m /= 100 # m = m / 100
链式赋值
x = 100
y = 100
z = 100
#上述三个式子可以简化为:
x = y = z = 100
交叉赋值
m = 100
n = 200
怎么样令m 与 n的值交换呢?
常见错误形式:
m = n
n = m
print(m, n) # 这样完全是错误的,根据赋值符号的本质可以知道。这样处理厚的m、n都是200
正确形式有两种:
1. 通过中间变量进行交换(过于繁琐不予推荐)
m = 100
n = 200
tem = m
m = n
n = tem
print(m, n)
2. 通过交叉赋值
m = 100
n = 200
m, n = n, m
print(m, n)
解压赋值:取开头和结尾的几个值
salary=[21,15,13,9,26]
x=salary[0]
y=salary[1]
z=salary[2]
a=salary[3]
b=salary[4]
print(x, y, z, a, b)
这样从列表里取每个值并赋值给另一个变量名过于麻烦,可以用解压赋值来解决这类问题。
方式一:
x,y,z,a,b=salary # 这样解压赋值时赋值符号左边的变量名必须与右边数值个数相等,不可多,不可少
print(x, y, z, a, b)
方式二:
x, y, *zab = salary # 这样解压赋值时是取前面两个值分别赋给 x 和 y,剩余的存在列表里赋值给*zab
print(x, y, *zab)
x, *abc, z = salary # 这样解压赋值时是分别取最前和最后两个值分别赋给 x 和 b,剩余的存在列表里赋值给*yza
print(x, *yza, b)
# 无用的数据复制给一个列表的时候,为了满足语法,可以用下划线做变量名,指向无用数据
逻辑运算符
逻辑运算符有三种,分别是与(and)、或(or)、非(not)
1. 与(and) # 表示且的意思,即所有的条件都要满足,结果才能是True。
2 > 1 and 1 = 1 and True and 3 > 2 # 结果为True
2 < 1 and 1 = 1 and True and 3 > 2 # 结果为False
2. 或(or) # 表示或者的意思,只要条件里有一个满足的结果就为True;一个条件都不满足结果才为False
2 < 1 or 1 != 1 or False or 3 < 2 # 结果为True
2 < 1 or 1 != 1 or False or 3 > 2 # 结果为False
3. 非(not) #not 会造成条件翻转,使False变成True,使True变成False。
not True # 结果为False
not False # 结果为True
# 这三种逻辑运算符混合使用时有优先级,不过一般不需要记忆。我们在进行编程时应该提前规定好。
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
print((3 > 4 and 4 > 3) or (not ((1 == 3 and 'x' == 'x')) or 3 > 3))
成员运算
成员运算的主要运算是判断某个数据是否在摸个群体内。
add_list = ['商丘', '郑州', '上海', '武汉', '杭州', '北京', '香港']
print('上海' in add_list) # True
print('长沙' in add_list) # False
身份运算
1. is:判断两个数据的内存地址是否一致
2. ==:判断两个数据的值是否一致
l1 = ['cheng', 'kong', 'wang']
l2 = ['cheng', 'kong', 'wang']
print(id(l1),id(l2)) # print(id(l1),id(l2))得到的俩个不相等的内存地址
print(l1 == l2) # 得到的是true
print(l1 is l2) # 得到的是false
# 很明显通过上面的也能知道is是判断俩个成员的id是否相等
# 而==判断的是俩个成员的值是否相等
# 值相等id不一定相等
# 内存地址相等值一定相等