PJzhang:python基礎入門的7個療程-five

PJzhang白話安全發表於2019-07-22

 貓寧!!!

參考連結:易靈微課-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天的完了。

 

相關文章