一、运算
1、逻辑运算符
运算符 | 表达式 | 描述 |
---|---|---|
and | x and y | “与”:如果 x 为假的值,x and y返回 x 的值,否则它返回 y 的值 |
or | x or y | “或”:如果 x 为假的值,x or y返回y的值,否则它返回 x 的值 |
not | not x | “非”:如果 x 为真的值,返回 False,如果 x 为假的值,返回True |
- 在Python中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的只就能得到最终结果(短路原则)。
- or 运算短路原则:若 or 运算符左边表达式为真,直接返回左边表达式的值,右边表达式不做计算,如: 1 or 0 and 1 的结果为:1。
- and 运算短路原则:若 and 运算符左边表达式为假,整个 and 表达式的结果为左边表达式的值,右边表达式不做计算;如:0 and 1 的结果为:0。
- and 和 or 运算符会将其中一个表达式的值作为最终结果,而不一定将 True 或者 False 作为最终结果。在多个逻辑语句连用时,and 语句并不会首先计算,而是作为一个整体,等到该逻辑运算式返回 and 语句的值的时候再进行运算,如:1 or 2 and c,这里 2 and c 会作为一个整体语句A,原逻辑语句会成为 1 or 语句A,根据 or 语句运算规则,则直接返回计算值1,并不会因为没有定义变量c 而报错,这样的场景,我们称之为短路原则。
- Python中为假的数据有:False、None、0、‘’‘’、[]、()、{},除了这几个都为真。
- 针对逻辑运算符,优先级:not > and > or
print(0 and 3 or 4) print(4 or 5 and 0) print(0 and 3 or 4 and 5 or 6) print(3 or b and 5 or 6 and 7) print(0 and 3 or 4 and 5 or 6 and not 7) #4 #4 #5 #3 #5
2、常见运算符优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
* / % // | 乘、除、取模华锐取整除 |
+ - | 加法减法 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
- 由上往下优先级越低,尽量使用()来限定运算次序,避免运算次序发生错误。
3、数值运算函数
运算符 | 描述 |
---|---|
abx(x) | x的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组形式(也称为元组类型) |
pow(x,y)或pow(x,y,z) | xy 或者 (xy)%z,幂运算 |
round(x)或round(x,d) | 对 x 进行四舍五入,保留 d 位小数,无参数 d 则返回四舍五入的整数值 |
max(x1,x2,…xn) | x1,x2,…xn的最大值,n没有限定,可以是任意数量 |
min()x1,x2,…,xn | x1,x2,…xn的最小值,n没有限定,可以是任意数量 |
print(abs(100))
print(abs(-100))
pr