一、基本运算符
1、算数运算符
print(10+3) # 13
print(10-3) # 7
print(10*3) # 30
print(10/3) # 3.3333333333333335
print(10//3) # 3 整除 地板除
print(10%3) # 1 取余 取余数部分
了解(* *) +号不仅可以数字和数字相加 还可以字符串和字符串 列表和列表相加
x = 'aaa'
y = 'bbb'
print(x + y) # aaabbb
print([1,2,3] + [4,5]) # [1, 2, 3, 4, 5]
x = 'aaa'*3
print(x) # aaaaaaaaa
2、比较运算符
print(10 == 10)
print(10 != 3)
print(10 > 3)
print(10 < 3)
print(10 >= 3)
print(10 <= 3)
了解
s1 = 'abced'
s2 = 'az'
print(s2>s1) # True
# 字符串可以比大小 比较的是ASCII码 一个一个比 比出结果为止 比如a和a比不出 下一个b<z
s1 = [123,123]
s2 = [111]
print(s1 <s2) False
l1 = [1, 'abc', 3.1]
# l2 = [1, 2222, 3.1]
l2 = [1, "abb", 3.1]
print(l1 > l2) True
3、赋值运算符
1.增量赋值
age = 18
age += 1 # age = age + 1
print(age)
age -= 2 # 减法赋值运算符 c-=a等效于c=c-a
print(age)
age *= 2 # 乘法赋值运算符 c*=a等效于c=c*a
age /= 2 # 除法赋值运算符 c/=a等效于c=c/a
age %= 2 # 取模赋值运算符 C %=a等效于c=c% a
age **= 2 # 幂赋值运算符 c**=a等效于c=ca
age //= 2 # 取整除赋值运算符 c//=a等效于c=c//a
2.交叉赋值
x = 111
y = 222
x, y = y, x
print(x, y)
3.链式赋值
x = y = z = 10
print(id(x),id(y),id(z))
4.解压赋值
salaries = [111,222,333,444,555]
m0,m1,m2,m3,m4=salaries
print(m0) # 111
print(m1) # 222
print(m2) # 333
print(m3) # 444
print(m4) # 555
x, y, z = {'k1': 111, 'k2': 222, 'k3': 333}
dic = {'k1': 111, 'k2': 222, 'k3': 333}
x, y, z = dic
print(x, y, z) # k1 k2 k3
print(dic[x], dic[y], dic[z]) # 111 222 333
x, y, z,a,b = "hello"
print(x) # h
x,*_,a,b = "hello"
print(x,a,b) # h l o
注意变量名与值得个数必须一一对应
# m0,m1,m2,m3,m4,m5=salaries # 报错 多一个变量名不行
# m0,m1,m2,m3=salaries # 报错 少一个变量名不行
引入'''':''''可以帮助我们取两头的值,无法取中间的值
salaries = [111, 222, 333, 444, 555]
m0, m1, *_ = salaries
print(m0) # 111
print(m1) # 222
print(*_) # 333
*_,x,y=salaries
print(x,y) # 444 555
x,*_,y,z=salaries
print(x,y,z) # 111 444 555
_,*middle,_=salaries
print(middle) # [222,333,444]
会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_,可用其他符号x、*xxx
一般用'_'代表的是废弃 不打算用这个东西
二、逻辑运算符
条件
只要能得到True或False两种值的东西都能当作条件
1、显式的布尔值:表面上看就能看出true或false
#(1)比较运算的结果
print(10 > 3)
print(10 == 3)
#(2)变量值直接就是True或False
tag = True
2、隐式的布尔值:表面上看上去是一种值,在底层会被解释器转换成True或False
0、None、空(包括空列表、空字典)对应的布尔值为False、其余值对应的布尔值均为True
# 10
# 3.1
# ""
# []
# {"k1":222}
# None
逻辑运算符
用来连接多个条件
(1)not 条件:对条件的结果取反
(2)条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
(3)条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
(4)优先级:not > and > or,推荐用括号去标识优先级
# False or True
res=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3
print(res) # True
print(10 and 0) # 0
print(10 and False) # False
print(10 or False) # 10