![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/296bdad827ee0653e8c371c5c6472dfb.png)
Python运算符的分类
1.算数运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 返回除法的余数 |
** | 幂次 |
// | 返回商的整数部分 |
需要注意的:
- 除的计算结果是浮点数。
- 取余的除法和取商的整数的除法都是向下取整。
- 如果想同时得到商和余数,用divmod(x,y),得到的结果是一个元组:(x//y,x%y)。
- 因为计算机运算时转为二进制运算,如果我们对运算结果的浮点数有要求,就需要使用Python 标准库中提供了decimal 这个模块来解决这个问题。
2.比较运算符
运算符 | 描述 |
---|---|
== | 比较值是否相等 |
!= | 比较值是否不相等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
- 比较运算符中不同的数据类型是无法做比较的。
- 比较运算符返回的是布尔值。
- ‘==’、’!=’、’<=’、’>='符号不能分开来写。
- 字符串与字符串进行比较时, 比较的是ASCII码,并且是分开逐个比较。
- 连续比较时,可按顺序拆分比较,并进行与运算。
3.赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 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–'语法。
- 赋值运算符不能分开写。
4.逻辑运算符
运算符 | 表达式 | 描述 |
---|---|---|
and | a and b | 逻辑与,a与b都为True则返回为True,其余返回False |
or | a or b | 逻辑或,a与b只要有一个为True则返回为True,a与b都为False则返回False |
not | not a | 逻辑非,当a为True, not a则为False |
5.位运算符
运算符 | 描述 |
---|---|
& | 按位与:两者都为1才为1,否则为0 |
| | 按位或:只有一个为1则为1,否则为0 |
^ | 按位异或:两者相等则为0,否则为1 |
6.成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 判断某个值是否在指定序列中,在则返回True | a在b序列中,如果a在b序列中,就返回True |
not in | 判断某个值是否在指定序列中,不在则返回True | a不在b序列中,如果a不在b序列中,就返回True |
7.身份运算符
身份运算符是用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | 判断两个对象的内存地址是否一致,是则返回True | a is b, 如果id(a)等于id(b),is返回结果1 |
is not | 判断两个对象的内存地址是否不一致,不是则返回True | a is not b, 如果id(a)不等于id(b),is not 就返回结果1 |
- ‘is’ 用于判断两个变量的引用是否为同一个内存地址 (可使用 id() 查看),’==’ 用于判断两个变量的值是否相等
8.三门运算符 - python中三目运算符的表达方式为:条件为真时的结果 if 判段的条件 else 条件为假时的结果。
#运算符的优先级
下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符 除外,它是按从右往左的顺序)。
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
* / % // | 乘 除 取余 整除 |
+ - | 加 减 |
<= < > >= | 比较运算符 |
== != | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
作业
作业1
name = "amy"
teacher_logic = ["bob","tony","Lisa","Steven"]
if name in teacher_logic:
print('amy 在逻辑大家庭')
else:
print(' amy 不在...好难过')
作业2
ax’<’xa’ 为True,字符串比较时,比较的是其对应的ASCII值,并且逐个进行比较,'a’在ACSII码表中为97,'x’为120,‘a’确实小于’x’,所以返回True。
作业3
以下程序如果输入666执行那个语句?为什么?
temp = input('请输入:')
if temp == 'Yes' or 'yes':
print('if执行了!')
else:
print('else执行了!')
程序执行if语句,因为根据运算符的优先级顺序,赋值运算符的优先级高于逻辑运算符,所以先将输入的字符串进行比较,得到False,然后在与’yes’进行逻辑判断,'yes’始终为True,所以判断结果始终为True,故不管输入什么都执行的是if语句
作业4
is 与==的区别?
'=='是比较运算符,是对两个变量进行比较值是否相等, ‘is’ 用于判断两个变量的引用是否为同一个内存地址 (可使用 id() 查看)。
作业5
from decimal import Decimal
a = int(input('请输入a的数值:'))
b = int(input('请输入b的数值:'))
if a != 0 and b != 0:
print(Decimal(a)/Decimal(b))
else:
print(a*b)
作业6
a = input('请输入a的数值:')
b = input('请输入b的数值:')
print(a if a > b else b)