貓寧!!!
參考連結:易靈微課-21天輕鬆掌握零基礎python入門必修課
https://www.liaoxuefeng.com/wiki/1016959663602400
第十三天:程式碼組織
類是個名詞,表示一類的事物,有多個例項物件。
list/tuple/dict/set都是一個類,['p','j','z'],('p','j','z'),{'age':19},{'p','j','z'}是與前者對應的例項
一定要謹記init前後是雙下劃線,否則會報錯 TypeError: Student() takes no arguments
測試結果
編寫程式碼很多時候是自己程式碼對著寫的時候有殘缺,而不是程式碼邏輯上的問題,這個時候除了看報錯,重新過一遍,排錯非邏輯錯誤。
上面是學號,語文,數學,英語成績,現在我們要獲取他的最高分和平均分,還有總人數。
程式碼有點長
兩個類,學生成績,學生成績表
第一個類,初始化學生的成績並數字化,全部都是屬性,沒有方法
第二個類,包括一個屬性,即列表,方法有載入列表資料,計算各科最大值,計算各科平均值
執行結果
第14天:程式碼組織
程式在執行的過程中會出現異常exception
開啟一個不存在檔案,FileNotFoundError
除以0,ZeroDivisionError
字母字串轉成數字,ValueError
訪問字典中不存在的key,KeyError
除以0的情況,之後的內容無法列印,只顯示第一行
結果
跳過報錯,第二個塊,報錯內容一定是在報錯中出現的,大小寫也要關注
結果,hello xhli沒有列印出來
異常的具體情況直接列印出來
結果
finally主要用於清理,不管前面的程式碼有沒有執行,最後都會列印出finally的字樣
結果,註釋掉print(1/0)也依然顯示finally列印結果。
爬蟲模擬報錯
結果,第一行有顯示,但是後面的就報錯了url return none:
針對未能爬取內容進行略過處理
結果
第十五天:開源模組
包package和模組module都是為了對程式碼進行更好的組織,其中模組中包含類,函式,語句,包中含有__init__.py和模組
import module,來引用一個模組,或者from package import module
模組搜尋路徑,首先搜尋指令碼所在目錄,然後搜尋PYTHONPATH路徑列表,這個在python安裝的時候已經自定義好路徑。
現在搞一個三級目錄,python目錄下有module1資料夾,module1中含有module2和__init__.py空檔案,module2中含有module3和__init__.py空檔案,module3下含有__init__.py檔案。
python目錄下ceshi.py
ceshi1.py引用ceshi.py,ceshi1.py也是在python目錄之下
結果,引用成功
自動生成一個快取資料夾
現在我們把ceshi.py放入module3資料夾中去,並調取ceshi.py利用
將ceshi1.py放在python目錄的上一級目錄中:/root/桌面/
執行ceshi1.py,顯示如下
如果我們指定了呼叫的目錄名字,那就可以了
命令列輸入export PYTHONPATH='/root/桌面/python/',ceshi.py在module3目錄之下
再次執行ceshi1.py
但是如果關掉終端視窗,就失效了,還需重新輸入export PYTHONPATH='/root/桌面/python/'
如果在程式碼中寫好呼叫路徑也可以
如下是結果,這個具有永久性呼叫,方便他人呼叫自己的一部分程式碼塊
__ name__的使用,ceshi.py和ceshi1.py在同一個目錄下
結果
呼叫一下ceshi.py
結果,引入其他模組的時候,對方的__name__就是它的檔名稱,不帶py字尾
在ceshi.py中新增一個if判斷語句
結果,說明在其他檔案中呼叫,其中__name__不等於__main__,執行ceshi.py,__name__等於__main__
python模組分為自帶的標準庫模組和開源模組
標準庫模組如sys,os,json,re,random,multiprocessing(多執行緒)等
開源庫如下:django,flask可以用於開發後臺,BeautifulSoup可以用於網頁標題的解析,numpy,scipy可以用於矩陣,matplotlib可以用於生成各種特徵圖,散點之類的,最後是兩個深度學習框架
這麼多高效模組,安裝有幾種辦法選擇
python3 -m pip install requests,安裝的都是python3的模組
pip3 install requests,這種方法比較方便,pip3 uninstall requests,這個是解除安裝包的功能
安裝anaconda可以實現一勞永逸的安裝好絕大部分的開源模組
https://www.anaconda.com/
power8和power9是IBM高階伺服器中的處理器晶片版本
kali linux自帶有hash驗證功能,這個很方便
bash '/root/下載/Anaconda3-2019.03-Linux-x86_64.sh'
直接回車,下一步
回覆yes
繼續回車選擇預設選項
選擇yes,就生效了
source ~/.bashrc,重新整理環境變數,多了一個(base)
conda config --show,可以看到一系列的conda的配置情況,圖示沒有展示完全
auto_activate_base: True,所以才有了(base)
現在去掉(base)
conda config --set auto_activate_base False
如何解除安裝掉anaconda呢,最簡單的辦法,rm -rf ~/anaconda3,徹底刪掉這個資料夾就好。
好的,第13-第15天的完了。