python运算符
算术运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 返回除数的余数 |
** | 幂次 |
// | 返回商的整数部分 |
注意:
- / 计算结果是 浮点数 ,即使两个数都是整数,结果也是浮点数
- // 与 % 都是 向下取整
- 如果想同时得到 商 和 余数 ,可以用 divmod() 这个方法。该方法的返回值是 tuple(x//y, x%y)
浮点数精度的问题如下:
>>> 5.6-3
2.5999999999999996
解决如下:
>>> from decimal import Decimal
>>> Decimal('5.6')-Decimal('3')
Decimal('2.6')
比较运算符
运算符 | 描述 |
---|---|
== | 比较值是否相等 |
!= | 比较值是否不相等 |
> | 大于 |
> | 小于 |
>= | 大于等于 |
<= | 小于等于 |
注意:
- int 不能 直接与 str 比较
- python3 中 不支持 <> 号,如:
>>> 1<>2
- == 与 != 符号 不能分开 写成 = =
- str 与 str 之间比较的是 ASCII,并且 逐个比较
- 连续比较,如:a>b>c 可拆解为 a>b and b>c
赋值运算符
运算符 | 描述 | 示例 |
---|---|---|
= | 赋值运算符 | c=a+b |
+= | 加法赋值运算符 | c+=a 等同于 c=c+a |
-= | 减法赋值运算符 | c-=a 等同于 c=c-a |
*= | 乘法赋值运算符 | c*=a 等同于 c=c*a |
/= | 除法赋值运算符 | c/=a 等同于 c=c/a |
%= | 取余赋值运算符 | c%=a 等同于c=c%a |
**= | 幂赋值运算符 | c**=a 等同于 c=c**a |
//= | 取整赋值运算符 | c//=a 等同于 c=c//a |
注意:
- 赋值:是将等号右边赋值给等号左边
- python 不支持 a++ 、a-- 语法
- += 等符号 不能分开 写成 + =
逻辑运算符
运算符 | 表达式 | 描述 |
---|---|---|
and | a and b | 逻辑与,a与b都为True,则返回为True |
or | a or b | 逻辑或,a与b只要有一个为True,则返回为True |
not | not a | 逻辑非,当a为True, not a则为False |
短路(懒惰)原则:
print(10 and 20)
print(10 or 20)
运行后:
20
10
位运算符(以二进制)
运算符 | 描述 |
---|---|
& | 按位与:两者都为1才为1,否则为0 |
| | 按位或:只有一个为1则为1,否则为0 |
^ | 按位异或:两者相等则为0,否则为1 |
例如:当 a = 60、b=13。取二进制
a = 0011 1100
b = 0000 1101
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
成员运算符
in 与 not in 是 Python 独有的运算符(全部都是小写字母),用于判断对象是否 某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类 型的 True 或者 False
运算符 | 描述 |
---|---|
in | 判断某个值是否在指定序列中,在则返回True |
not in | 判断某个值是否在指定序列中,不在则返回True |
身份运算符
身份运算符也是 Python 的特色语法(全部都是小写字母)
运算符 | 描述 |
---|---|
is | 判断两个对象的内存地址是否一致,是则返回True |
is not | 判断两个对象的内存地址是否不一致,不是则返回True |
注意:is 与 == 的区别
- is 用于判断两个变量的引用是否为同一个内存地址 (可使用 id() 查看)
- == 用于判断两个变量的值是否相等
三目运算符
python 中的三目运算符表示方法:
True_statements if expression else False_statements
# 若 expression 为 True,则返回 True_statements
# 若 expression 为 False,则返回 False_statements
示例:
a = 1
b = 2
# if a + b > 3:
# print(a + b)
# else:
# print(a - b)
print(a + b if a + b > 3 else a - b)
运行后:
-1
运算符优先级
下表列出了从 最高到最低优先级 的 所有运算符。优先级高的运算符优先 计算或处理,同级别 的按从 左往右 的顺序计算(赋值运算符 除外,它 是按从 右往左 的顺序)
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
* / % // | 乘 除 取余 整除 |
+ - | 加 减 |
<= < > >= | 比较运算符 |
== != | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |