Python学习之旅
Python核心编程基础篇2020.12.18
指导教师:逻辑教育讲师Amy
一、算数运算符
运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 求余(模) |
** | 幂次 |
// | 整除 |
- 遵循算数运算顺序法则:括号→乘除→加减
- 加减运算,其对象只要有浮点数类型运算结果即为浮点数类型
/
运算结果为浮点数divmod(a, b)
方法返回数组(a//b, a%b)
,例:print(divmod(10, 3))
输出(3, 1)
- 运算结果精度问题
from decimal import Decimal
- Python在计算浮点数时有时会出现精度问题如下
(二进制有穷性,计算机先把数值转换成二进制,在计算,完成后再转换为十进制)
在Python中使用round(numbei, nights)
四舍五入(四舍六入五成偶)并不能完全解决问题,我们可使用decimal
这个模块来解决浮点数精度问题,比如银行货币计算 decimal
模块应用
- Python在计算浮点数时有时会出现精度问题如下
二、比较运算符
运算符 | 说明 |
---|---|
== | 比较值是否相等 |
!= | 比较值是否不相等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
注意
int
类型不能与str
类型比较==
之间不能有空格str
与str
之间比较ASCII值,且逐个比较
如:
- 可连续比较
a>b>c
意思为a>b and b>c
三、赋值运算符
运算符 | 说明 | 示例 |
---|---|---|
= | 赋值 | c= a+b |
+= | 加法运算 | c+=b 等效于c = c+b |
-= | 减法运算 | c-=b 等效于c = c-b |
*= | 乘法运算 | c*=b 等效于c = c*b |
/= | 除法运算 | c/=b 等效于c = c/b |
**= | 幂次运算 | c**=b 等效于c = c**b |
%= | 求余运算 | c%=b 等效于c = c%b |
//= | 整除运算 | c//=b 等效于c = c//b |
注意
- 赋值是将等号右边赋值给等号左边
+=
等中间不能有空格,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)
返回10
,print(10 or 20)
返回10
,此为短路原则
五、成员运算符
Python独有运算符,用来判断某个对象是否在某个集合当中,返回结果为True
或False
运算符 | 说明 |
---|---|
in | 判断对象是否在集合中,在则返回True |
not in | 判断对象是否不在集合中,不在则返回True |
六、身份运算符
Python特色语法
运算符 | 说明 |
---|---|
is | 判断两对象地址是否一致,是则返回True |
is not | 判断两对象是否不一致,不是则返回True |
注意
print(id(a))
可打印出变量a的地址is
判断两变量地址是否一致,==
判断两变量值是否相等
七、三目运算符
True statement if expression else False statement
,如果expression
表达式为True
,则执行if
前面的statement
语句,如果为False
,则执行else
后面的statement
语句- 例:
八、运算符优先级
下表运算顺序为由高到低,同级由左至右(赋值为从右至左)
运算符 | 描述 |
---|---|
** | 指数(最高) |
* / % // | 乘 除 求余 整除 |
+ - | 加 减 |
<= < > >= | 比较运算符 |
== != | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is ,si not | 身份运算符 |
in, not in | 成员运算符 |
and or not | 逻辑运算符 |
九、位运算符
二进制运算
运算符 | 说明 |
---|---|
& | 按位与:两者都为1,才为1 |
| | 按位或:一个为1即为1 |
^ | 按位与:两者不相同为1,相同0 |
十、作业
- 作业一
- 作业二
为True,只比较了左侧的a的ASCII码值和右边x的ASCII码值 - 作业三
fi执行了
1.先temp == 'yes'
比较运算,两字符6
与y
ASCII码不相等为False
,再是False or 'no'
逻辑运算,字符串'no'
非空为True
,所以整个条件expression为真,所以条件语句执行print('if执行了')
- 作业四
is
判断两俩对象内存地址是否一致,一致返回True
==
判断俩对象值是否相等,相等返回True
- 作业五
- 作业六