算术运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
+、-、*、/ | 加、减、乘、除 | 字符串之间相加即为连接,字符串与数字相乘即为重复 ,两个数相除结果总为浮点数 | ‘a’+‘b’得到’ab’,‘la’*3得到’lalala’ |
** | 幂 | 指数运算,返回x的y次幂 | 3**4得到81,相当于 pow()函数 |
// | 取商数 | 返回商的整数部分(不大于x与y之商的最大整数) | 4//3.0得到1.0,4//3得到1 |
% | 取余数(取模) | 返回除法的余数(不同语言可能结果不一样,个人理解在python中运算结果是商往负无穷方面取临近整数时的得到余数) | -16%3得到2,16%(-3)得到-2,-16%-3得到-1,-25.5%2.25得到1.5 |
注:
1.三种类型存在一种逐渐扩展或变宽的关系:整数 -> 浮点数 -> 复数
2.类型间混合运算,生成结果为“最宽”的类型。例如整数 + 浮点数 = 浮点数
3.在运算过程中会要求两个操作数类型一致,当操作数类型不一致时,系统会自动将低类型向高类型转换后计算。例如x=2.3;y=5;x+y返回7.3
print(-25.5%2.25)
print(-25.5/2.25)
print(divmod(-25.5,2.25)) #divmod同时取商和余数
print(divmod(25.5,2.25))
输出结果:
1.5
-11.333333333333334
(-12.0, 1.5)
(11.0, 0.75)
比较运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
<,>,<=,>= | – | 返回False或者True | 3<5<7返回True |
==,!= | 等于,不等于 | 返回False或者True | x=‘abc’;y='Abc’则x==y返回False |
逻辑运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
not | 布尔非 | 返回False或者True | not 5返回False,not 0返回True |
and | 布尔与 | 返回False或者True | 1 and 45返回45(两个都是真值时取第二个值) |
or | 布尔或 | 返回False或者True | True or False返回True |
注:
1.“与”运算 a and b 时,如果a为假,a and b就返回假,否则返回b的值
2.“或”运算 a or b时,如果a非0,返回a的值,否则返回b的值
3.“非”运算 not a 时,如果a为真,就返回假,如果a为假,就返回真
(巧记: and 和 or 都是前一个值进行决定性判断,如果能对前一个值做出决定性判断则返回前一个值,如果不能得出决定性判断,就返回第二个值。and 前一个为假则必为假,or 前一个为真则必为真,可以把这个理解为决定性判断。)
print(0 and 11)
print(18 and 7)
print(18 and 0)
print(True and False)
print(False and True)
输出结果:
0
7
0
False
False
print(5 or 88)
print(5 or False)
print(0 or 9)
print(False or 0)
print(0 or False)
输出结果:
5
5
9
0
False
赋值运算符
=、+=、-=、*=、/=、%=、**=、//=
>>> a = 3
>>> b = 6
>>> c = 0
>>> c = a + b
>>> c += 5 # 9+5
>>> c
14
>>> c -= a # 14-3
>>> c
11
>>> c *= a # 11*3
>>> c
33
>>> c /= a # 33/3
>>> c
11.0
>>> c %= a # 11.0/3
>>> c
2.0
>>> c **= a # 2.0的3次幂
>>> c
8.0
>>> c //=a # 8.0//3
>>> c
2.0
>>>
常用运算符的优先级
运算符(从低到高,同一行优先级相同) |
---|
lambda 表达式 |
or 布尔或 |
and 布尔与 |
not 布尔非 |
in、not in(成员测试) |
is、is not(同一性测试) |
<、<=、>、>=、!=、== |
+、- |
*、/、% |
** |
注:
如果想要改变它们的计算顺序,可以使用圆括号()。
#比较部分优先级
print((1 in [1,0]) == True) #True
print(1 in [1, 0] == True) #False
print((2 > 1) is True) #True
print(2 > 1 is True) #False
输出结果:
True
False
True
False