python运算符
1.算数运算符
运算符 | 表示 |
---|---|
+ | 加 |
– | 减 |
* | 乘 |
/ | 除 |
% | 返回除的余数 |
** | 幂次 |
// | 返回商的整数部分 |
注意:
- / 计算结果是浮点数,即使两个数都是整数,结果也是浮点数
- // 与 % 都是向下取整
- 如果想同时得到商和余数,可以使用divmod()这个方法。该方法的返回值是tuple(x//y,x%y)
divmod(x,y)-->(x//y,x%y)-->(商,余数)
- 浮点数的精度问题如下:
>>>5.4-3
2.4000000000000004
解决方法如下
>>>from decimal import Decimal
>>>Decimal('5.4')-Decimal('3')
>Decimal('2.4')
2.比较运算符
运算符 | 表示 |
---|---|
== | 值是否相等 |
!= | 值是否不等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
字符串与字符串的比较(了解)
print("abc"<"xyz") #比较的是ascil
print("ab"<"ac") #Ture
print("ab">"ac") #False
注意:int 与 str 类型不能直接比较
print(3 < 'a')
print(3 > 2 > 1)--> a>b and b>c 两者都为true才为True
print(3 > 2 > 2)-->3>2 and 2>2 为False
print((3 > 2)> 1) #True > 1 -->False
3.赋值运算符
运算符 | 表示 |
---|---|
= | 赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取余数赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
代码演示:
a += 1 #a = a + 1
a /= 1 #a = a / 1
4.逻辑运算符
运算符 | 表示 |
---|---|
and | a and b |
or | a or b |
not | not a |
运算符 | 描述 |
---|---|
and | 逻辑与,a与b都为True则 返回为True |
or | 逻辑或,a与b只要有一个为True则返回为True |
not | 逻辑非,当a为True,not a则为False |
代码演示:
a = True
b = True
c = False
d = False
print(a and b) #True
print(a and c) #False
print(a or c) #True
print(c or d) #False
思考:以下输出多少?
print(10 and 20) #为20
print(20 or 10) #为10
print(False and True) #False
print(True or False) #True
以上为短路(懒惰)机制(注意:以上不是比大小)
5.位运算符(以二机制,了解)
运算符 | 描述 |
---|---|
& | 按位与:两者都为1才为1,否则为0 |
| | 按位或,只有一个1为则1,否则为0 |
^ | 按位或:两者相等则为0,否则为1 |
6.成员运算符
运算符 | 表示 |
---|---|
in | 判断某个值是否在指定序列中,在则返回True |
not in | 判断某个值是否在指定系列中,不在则返回True |
注意:is 与 == 的区别
1.is 用于判断两个变量的引用是否为同一个内存地址(可使用id查看)
2.== 用于判断两个变量的值是否相等
7.身份运算符
运算符 | 描述 |
---|---|
is | 判断两个对象的内存地址是否一致,是则返回True |
is not | 判断两个对象的内存地址是否不一致。不是邪恶返回True |
8.三目运算符
True_statement if expression False_statements
问题:
实现,当a + b > 3,执行a + b,否则执行b - aa = 1
b =2
方法1:
if a+b>3:
print(a+b)
else:
print(b-a)
方法2:
print(a+b if a+b>3 else b-a)
运算符的优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
* / % // | 乘 除 取余 整除 |
+ - | 加 减 |
<= < > >= | 比较运算符 |
== != | 比较运算符 |
= %= /= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
上表列出了从最高级到最低级的所有运算符。优先级高的运算符优先运算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)