文|Seraph
00 | 函数及文件含义
-
__init__.py
当加载模块时(目录名),会默认加载此文件,__init__.py
文件一般就是导入目录下的其他子模块。相当于用__init__.py
做模块导入的统一管理。
但我们导入模块的时候,依然要写上子模块的名称。 -
dir()
查询模块的属性、方法等。如果输入参数为空,便是查询当前模块的属性、方法等。 -
__file__
当前文件的位置(包含文件名)。可能时绝对路径,有可能是相对路径,依赖于python执行时的参数。 -
os.path.dirname()
截取当前文件的上层目录。 -
isinstance()
函数判断一个对象是否时某种类型,与type()
不同的是,isinstance()
会认为子类是一种父类类型,考虑继承关系。 -
hasattr()
判断对象是否包含对应的属性。 -
os.environ.get()
获取环境变量。 -
zip()
将可迭代的对象打包成一个个元组,以列表的形式返回。 -
dot()
函数为矩阵乘,*
则表示嘴哥元素相乘。 -
eval()
函数:执行一个字符串表达式。
01 | 解决方案
- 将jupyter的ipynb文件转为py文件。
解决:jupyter nbconvert --to script demo.ipynb
02 | OS模块
函数名 | 含义 |
---|---|
os.listdir() | 返回指定的文件夹包含的文件或文件夹的名字的列表 |
os.path.join() | 连接两个或更多的路径名组件 |
03 | str模块
函数名 | 含义 |
---|---|
str.split() | 分割字符串 |
round函数
使用方法:round(number,digits)
digits>0,四舍五入到指定的小数位
digits=0, 四舍五入到最接近的整数
digits<0 ,在小数点左侧进行四舍五入
如果round()函数只有number这个参数,等同于digits=0
四舍五入规则:
要求保留位数的后一位<=4,则舍去3,如5.214保留小数点后两位,结果是5.21
要求保留位数的后一位“=5”,且该位数后面没有数字,则不进位,如5.215,结果为5.21
要求保留位数的最后一位“=5”,且该位数后面有数字,则进位,如5.2151,结果为5.22
要求保留位数的最后一位“>=6”,则进位。如5.216,结果为5.22
99 | 问题解决
-
NameError:name ‘xrange’ is not defined
解决:在Python 3中,range()与xrange()合并为range( )。如果你是python3,使用range即可。 -
使用pip时,from pip import main ImportError: cannot import name ‘main’。
解决:pip老版本升级到新版本的问题。
- 打开
/usr/bin/pip
文件
from pip import main
if __name__ == '__main__':
sys.exit(main())
修改为
from pip import __main__ //修改为__main__,注意是两个下划线
if __name__ == '__main__':
sys.exit(__main__._main())//增加__main__._
-
错误提示:
unindent does not match any outer indentation level
解决:不一致的缩减导致。 -
错误提示:
ImportError: No module named 'cPickle'
解决:python3没有cPickle库,应该用pickle。 -
使用range错误提示:
TypeError: 'float' object cannot be interpreted as an integer
解决:首先错误事range应该接收int类型的参数。一般可能事python2的除法与python3不一致导致的。
python2:a = b/c
结果为int
python3:a = b/c
结果为float,如果需要结果为int,需要修改为a = b//c
。 -
进行某些安装操作,pip突然坏掉了,提示如下:
Traceback (most recent call last):
File "/usr/local/bin/pip", line 6, in <module>
from pip._internal import main
ImportError: No module named 'pip._internal
解决:重新安装pip
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
python3 get-pip.py --force-reinstall #如果你是python3,记得不要写成python
-
unindent does not match any outer indentation level
解决:不一致的缩进导致。如tab
不一致,可以使用多次按space
来表示tab,一个
tab表示四个
space`。 -
TypeError: 'module' object is not callable
解决:Python导入模块的方法有两种:import module 和 from module import,区别是前者所有导入的东西使用时需加上模块名的限定,而后者不要。