- 标识符、变量命名易错点
1.唯一能够使用的标点符号,只有下划线’_’!!!
不包括空格。另外选的时候注意是‘-’还是‘_’。
并且开头不能为数字
2.不能与关键字重名。
常常记不清楚的:assert,break,lambda,nonlogal,raise,yield.
例:
3_1,break, first name都不是符合规则的
_ss符合规则(是数字不能在开头,而不是_不能在开头)
- 被遗忘的内置函数
1.isinstance():判断某个对象是否属于某个类型
>>> isinstance(1,int)
True
>>> isinstance('1',int)
False
- 意想不到的结果
1.溢出错误
浮点数存在上下限,计算结果超出其上下限会导致溢出错误,而整数却不会
>>> 100.0**1000
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
100.0**1000
OverflowError: (34, 'Result too large')
>>>
有兴趣可以试一试100**1000
2.截断误差
由于计算机内部采用二进制数表示,但不是所有的十进制实数都可以用二进制精确地表示,所以可能会产生精度误差,也就是截断误差
>>> a = 1/3
>>> b = 1 - 2/3
>>> a == b
False
>>> a
0.3333333333333333
>>> b
0.33333333333333337
>>>
- emm…其他事项
1.查看复数的实部和虚部返回的是浮点数
>>> (3-4j).real
3.0
>>> (3-4j).imag #这里后面不需要加括号,加括号还会报错
-4.0
>>>
2.abs() 与fabs()
abs():返回的可以是整数,也可以是浮点数,且为python内置函数
fabs():返回的一定是浮点数,为math模块中的函数
>>> abs(5)
5
>>> abs(5.0)
5.0
>>> fabs(5) # fabs()为math模块中的函数,直接用会报错
Traceback (most recent call last):
File "<pyshell#72>", line 1, in <module>
fabs(5)
NameError: name 'fabs' is not defined
>>> import math
>>> math.fabs(5)
5.0
>>>
3.int与round
int():不是四舍五入,而是直接去掉小数部分
round():四舍六入五留双(五留双:取离它最近的偶数)
>>> int(3.9)
3
>>> round(2.5)
2
>>> round(3.5)
4
int()还需要注意的一点是,有一些数并不能一次性转成整数
>>> int('3.5')
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
int('3.5')
ValueError: invalid literal for int() with base 10: '3.5'
>>> int(float('3.5'))
3
4.余数的正负号与除数一致
>>> -5 % 3
1
>>> 5 % -3
-1
>>> -5 % -3
-2 # 注意理解向下取整
>>>
python规定对于//(整除)的结果是向负无穷大方向(即数轴的左边)取整,所以-5//-3=1.6666,所以取的是1,1乘-3=-3,所以余数是负二
5.or 的短路运算
or 的做操作数为True,则直接跳过右操作数,得出结果
>>> def s(x,y):
print(x+y)
>>> a = 1
>>> a == 1 or s(1,2) and s(2,3) # 这里并没有执行s函数,所以直接跳过了or之后的内容
True
>>>
先复习到这里啦,明天见!