文章目录
1. 运算符相关概念
1.1 运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
1.2 运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算
- 条件运算符(三元运算符)
2. 算术运算符
算数运算符 | 描 述 | 实 例 |
---|---|---|
+ | 加:两个对象相加 | a+b输出结果30 |
- | 减:得到负数或是一个数减去另一个数 | a-b输出结果-10 |
* | 乘:两个数相乘或是返回-个被重复若干次的字符串 | a*b输出结果200 |
/ | 除:x除以y | b/a输出结果2 |
% | 取模:返回除法的余数 | b%a输出结果0 |
** | 幂:返回x的y次幂 | a**b为10的20次方,输出结果100000000000000000 |
// | 取整除:返回商的整数部分 | 9//2输出结果4,9.0//2.0输出结果4.0 |
注意:
① /计算结果是浮点数,即使两个数都是整数,结果也是浮点数
>>> 9/3
3.0
>>> 10/3
3.3333333333333335
② //只取整数部分,余数被抛弃
>>> 10//3
3
>>> -10//3
-4 # 向下取整
③ %余数运算,可以得到两个整数相除的余数
>>> 10%3
1
>>> -10%3
2 # 向下取整
④ 如果想同时得到商和余数,可以用divmod()这个方法
该方法的返回值是tuple (x//y, x%y)
>>> divmod(10,3)
(3,1)
⑤ 因为浮点数精度的问题,Python还存在一些计算方面的小问题
0.1+0.1+0.1-0.3
5.551115123125783e-17
要解决这个问题,可以导入decimal模块
from decimal import Decimal
Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.0')
3. 赋值运算符
复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的
- += (x+= 3 相当于 x = x + 3 )
- -= (x -= 3 相当于 x= x - 3 )
- *= (x = 3 相当于 x = x 3 )
- **= (x **= 3 相当于 x = x ** 3 )
- /= (x /= 3 相当于 x = x/ 3 )
- //= (x //= 3 相当于 x = x // 3 )
- %= (x %= 3 相当于 x= x % 3 )
4. 比较运算符
1.比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- “>” 比较左侧值是否大于右侧值
- “>=”比较左侧的值是否大于或等于右侧的值
- “<” 比较左侧值是否小于右侧值
- “<=” 比较左侧的值是否小于或等于右侧的值
2.特殊的比较方式
- “==” 比较两个对象的值是否相等
- “!=” 比较两个对象的值是否不相等
- “is” 比较两个对象是否是同一个对象,比较的是对象的id
- “is not” 比较两个对象是否不是同一个对象,比较的是对象的id
5. 逻辑运算符
5.1 not 逻辑非
- not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
5.2 and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
5.3 or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
5.4 非布尔值的与或运算
1.当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
2.非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
3.非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
6. 条件运算符(三元运算符)
1.条件运算符在执行时,会先对条件表达式进行求值判断
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
2.语法: 语句1 if 条件表达式 else 语句2
3.表示方法:True_statements if expression else False_statements
a = 1
b = 2
if a+b>3:
print(a+b)
else:
print(b-a)
a+b if a+b>3 else b-a # 三目运算符
#如果a+b大于3执行a+b,否则执行b-a
7. 运算符的优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名为+@和-@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位’AND’ |
^ | | 位运算符 |
<= <> >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |