1. 程式人生 > >Python黑帽程式設計2.1 Python程式設計哲學

Python黑帽程式設計2.1 Python程式設計哲學

Python黑帽程式設計2.1  Python程式設計哲學

本節的內容有些趣味性,涉及到很多人為什麼會選擇Python,為什麼會喜歡這門語言。我帶大家膜拜下Python作者的Python之禪,然後再來了解下Python的程式設計規範。

2.1.1 ZEND OF PYTHON

在Kali中啟動終端,輸入Python,進入互動模式。

圖2

輸入命令

import this

“一首詩”呈現在我們眼前。

圖3

內容如下:

Beautiful is better than ugly.      

優美勝於醜陋

Explicit is better than implicit.   

明瞭勝於晦澀

Simple is better than complex.      

簡單勝過複雜

Complex is better than complicated. 

複雜勝過凌亂

Flat is better than nested.      

扁平勝於巢狀

Sparse is better than dense.     

 間隔勝於緊湊

Readability counts.          

可讀性很重要

Special cases aren't special enough to break the rules.  

即使假借特例的實用性之名,也不違背這些規則

Although practicality beats purity.   

雖然實用性次於純度

Errors should never pass silently.   

錯誤不應該被無聲的忽略

Unless explicitly silenced.       

除非明確的沉默       

In the face of ambiguity, refuse the temptation to guess.

當存在多種可能時,不要嘗試去猜測

There should be one-- and preferably only one --obvious way to do it.

應該有一個,最好只有一個,明顯能做到這一點

Although that way may not be obvious at first unless you're Dutch.

雖然這種 方式可能不容易,除非你是python之父

Now is better than never.   

現在做總比不做好

Although never is often better than *right* now. 

雖然過去從未比現在好

If the implementation is hard to explain, it's a bad idea. 

如果這個實現不容易解釋,那麼它肯定是壞主意

If the implementation is easy to explain, it may be a good idea.  

如果這個實現容易解釋,那麼它很可能是個好主意

Namespaces are one honking great idea -- let's do more of those! 

名稱空間是一種絕妙的理念,應當多加利用

關於這段聖經般的描述,我這裡也不做過多解釋了,隨著程式設計經驗的豐富,理解也會越來越深刻。此刻,你只需默默的讀一遍,然後放到自己的收藏夾裡。

2.1.2 編碼規範

下面的內容很重要,建議初學者當做金科玉律來遵守。

對於初學者,我必須要強調的是,Python沒有C語言那樣的大括號,可以表示程式碼塊和程式碼之間的層級關係,也沒有VB那樣的begin…end,它是靠縮排來表示這些的。對於用慣了大括號的的程式設計師來說,多少會有些不適應,因為有大括號的情況下,我們可以隨意調整縮排,讓程式碼按照我們的審美來排列,但是在Python裡就不能這麼做了。看下面一個簡短的示例:

stringStest = 'abcdefghijk'

for char in stringStest[1:]:

if char !='c':

print 'not c'

這段程式碼很簡單,首先聲明瞭一個字串變數stringStest,然後遍歷字串中的中的字元,判斷是不是字母“c”,如果不是列印“not c”。執行之後,會看到如下錯誤:

圖4

簡單的分析下,for迴圈和變數宣告處於同級,二者目前作為測試程式碼的頂級,不需要縮排。if條件判斷是for的子集,應該有4個空格的縮排,print語句是if的子集,應該和if參照再有4個空格的縮排。修改完畢的程式碼如下:

圖5

執行結果如圖6.

圖6

第2.2節《資料型別》已經在微信訂閱號搶先發布,心急的同學進入訂閱號(二維碼在下方),從選單“網路安全”—>”Python黑帽程式設計”進入即可。

由於教程仍在創作過程中,在整套教程完結前,感興趣的同學請關注我的微信訂閱號(xuanhun521,下方二維碼),我會第一時間在訂閱號推送圖文教程和視訊教程。問題討論請加qq群:Hacking (1群):303242737   Hacking (2群):147098303。

關注之後,回覆請回復“Python”,獲取更多內容。