Python知識與錯誤解決

2021-10-01 06:37:09 字數 3275 閱讀 9387

文|seraph

__init__.py

當載入模組時(目錄名),會預設載入此檔案,__init__.py檔案一般就是匯入目錄下的其他子模組。相當於用__init__.py做模組匯入的統一管理。

但我們匯入模組的時候,依然要寫上子模組的名稱。

dir()

查詢模組的屬性、方法等。如果輸入引數為空,便是查詢當前模組的屬性、方法等。

__file__

當前檔案的位置(包含檔名)。可能時絕對路徑,有可能是相對路徑,依賴於python執行時的引數。

os.path.dirname()

擷取當前檔案的上層目錄。

isinstance()函式判斷乙個物件是否時某種型別,與type()不同的是,isinstance()會認為子類是一種父類型別,考慮繼承關係。

hasattr()判斷物件是否包含對應的屬性。

os.environ.get()獲取環境變數。

zip()將可迭代的物件打包成乙個個元組,以列表的形式返回。

dot()函式為矩陣乘,*則表示嘴哥元素相乘。

eval()函式:執行乙個字串表示式。

將jupyter的ipynb檔案轉為py檔案。

解決:jupyter nbconvert --to script demo.ipynb函式名

含義os.listdir()

返回指定的資料夾包含的檔案或資料夾的名字的列表

os.path.join()

連線兩個或更多的路徑名元件

函式名含義

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

nameerror:name 『xrange』 is not defined

解決:在python 3中,range()與xrange()合併為range( )。如果你是python3,使用range即可。

使用pip時,from pip import main importerror: cannot import name 『main』。

解決:pip老版本公升級到新版本的問題。

from pip import main  

if __name__ ==

'__main__'

: sys.exit(main(

))

修改為

from pip import __main__  //修改為__main__,注意是兩個下劃線

if __name__ ==

'__main__'

: sys.exit(__main__._main())

//增加__main__._

解決:不一致的縮減導致。

解決:python3沒有cpickle庫,應該用pickle。

解決:首先錯誤事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 from pip._internal import main

importerror: no module named 'pip._internal

解決:重新安裝pip

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

how to solve "attributeerror: module 'google.protobuf.descriptor' has no attribute '_internal_create_key"?

解決:pip install --upgrade protobuf

pip安裝pycuda報錯:bpl-subset/bpl_subset/boost/python/detail/wrap_python.hpp:50:11: fatal error: pyconfig.h: no such file or directory

解決:pip install python3-dev(如果已安裝,重新安裝確認指定版本,如python3.8-dev)

Python工具pip錯誤解決

環境是win8,原來只安裝了python2.7。後來因為要用到python3,為了讓兩者共存,降python3的執行檔案改成了python3.exe.問題就此而來,這時候執行python3 的pip會遇到如下錯誤 fatal error in launcher unable to create pr...

duplicate symbol錯誤解決

首先介紹一下重要的幾個引數 objc 加了這個引數後,鏈結器就會把靜態庫中所有的objective c類和分類都載入到最後的可執行檔案中 all load 會讓鏈結器把所有找到的目標檔案都載入到可執行檔案中,但是千萬不要隨便使用這個引數!假如你使用了不止乙個靜態庫檔案,然後又使用了這個引數,那麼你很...

rsync 錯誤解決

總結自己遇到問題,及其解決方法 1 rsync read error connection reset by peer 104 rsync error error in rsync protocol data stream code 12 at io.c 759 sender 3.0.6 解決 這個...