运算符,就是运算用的符。[doge]
运算符
常见类型:
算术运算符
赋值运算符
关系运算符
逻辑运算符
条件运算符
算术运算符
最常用的,加减乘除,即±*/。//是除取整。**是幂运算,开根号可以用小数幂运算。%是除取余。
赋值运算符
就是=这种的,作用就是将等号右侧的值赋给等号左侧的变量(不能反过来)。其衍生的+=,-=,*=,/=,**=这些也是赋值运算符。如:
j = 3
j += 5
print(j)
j *= 2
print(j)
j -= 10
print(j)
j /= 2
print(j)
j **= 2
print(j)
j //= 2
print(j)
j %= 3
print(j)
结果如下:
8
16
6
3.0
9.0
4.0
1.0
关系运算符
关系运算符用来比较两个值之间大小的关系,返回值是布尔值。常见的有>、<、>=、<=、!=、==这些。其中,数字可以和布尔值比,但是不能和字符串比,但是字符串和字符串可以比。因为数字和布尔值都属于数值类型,但是和字符串不同类。如:
h = 30 > 20
print(h)
h = 30 < 20
print(h)
h = 11 >= 11
print(h)
h = 11 <= 11
print(h)
h = 2 > True
print(h)
h = '3' > '1'
print(h)
h = '2' > '11' # 在Python中可以比较字符串,但是实际上比较的是二者Unicode的编码,而不是比数字内容的大小
print(h) # 而且是逐位比较,而且哪一位比出来了,就不继续比了,2和第一个1比完就不管后面的1了
h = 1 == 1
print(h)
h = 1 != 1
print(h)
h = '233' != 'xiaoheizi'
print(h)
h = True == 1 # ==和!=比较的是二者的value
print(h)
h = 1 is not True # is和is not比的是id
print(h)
结果如下:
True
False
True
True
True
True
True
True
False
True
True
True
补充:
o = 1 < 2 < 3 # 相当于1<2 and 2<3,实际上是关系运算符加逻辑运算符,返回的是布尔值
print(o)
结果是:True
。注意,即使是一个>一个<也是中间的数分别比两边的数,只不过都是判断是否大于或者是否小于。比如上面改为o = 1 < 2 > 3,那就是相当于1< 2and2>3的判断。
逻辑运算符
逻辑,即:与或非——and,or,not。not是一元运算符,因为只参与一个值,而+这样的就是二元,因为需要两个相加。效果如下:
k = True
k = not k
print(k)
k = 1
k = not k # 非布尔值会先转换成布尔值然后执行
print(k)
k = ''
k = not k # 空性的值会被看作False
print(k)
k = True and True
print(k)
k = True and False # 全1则1,有0则0,与顺序无关,我这里0和1说的是布尔值
print(k)
k = False or False
print(k)
k = True or False # 有1则1,全0才0,同样与顺序无关
print(k)
# 但要注意,and和or是按照从前往后的顺序看的,所以对于and,第一个是True时才继续看第二个,不然会直接输出,or则是找False
True and print('只因只因')
False and print('只因只因') # 这个执行出来没有结果,因为不看后面那句,直接返回False,除非给这句整个打印出来,你才能看见False
True or print('只因只因') # 这个同样执行出来没有结果,因为不看后面那句,直接返回True,除非给这句整个打印出来,你才能看见True
False or print('只因只因')
k = 1 and 3 # 对非布尔值用的时候,会当做布尔值来运算,但是最终返回原值,而说了and和or是按照从前往后的顺序看的,所以
print(k) # 看完第一个是1以后会看第二个,然后不是0,所以直接返回第二个的原值,第二个是0也返回0,第一个是False(0)那直接返回第一个
k = 0 and None
print(k)
k = 1 and None
print(k)
k = 1 and 0
print(k)
k = 1 or 3 # 和and相对应,找True,所以看完第一个是1以后就返回,如果不是True(1),那就看第二个,是啥返回啥
print(k)
k = 0 or 3
print(k)
k = not 1
print(k)
k = not 0
print(k)
k = not ''
print(k)
结果如下:
False
False
True
True
False
False
True
只因只因
只因只因
3
0
None
0
1
3
False
True
True
条件运算符
也叫三元运算符,需要三个数来操作。具体语法形如:
语句1 if 条件表达式 else 语句2。
开始条件运算符运行后,先对条件表达式进行计算,看看是True还是False,True运行语句1,False运行语句2。如:
l = 11
m = 12
print('l is bigger') if l > m else print('m is bigger')
max = l if l > m else m
print(max)
结果如下:
m is bigger
12
运算符的优先级
算术运算符中:优先级按照代数计算的法则来。
逻辑运算符中:and优先级高于or。如n = 1 or 2 and 3,输出是1,因为2 and 3得3,1 or 3得1。not在三者中最高。
tip:加个()直接优先计算,跟算数一样。