文|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,區別是前者所有導入的東西使用時需加上模塊名的限定,而後者不要。