0x02:入門(2)
##入門(2)
這一章將繼續講解一些基礎的Python腳本概念,我們將把代碼寫入到一個腳本裡面,函數,類和sys模塊。
Python腳本框架
下面是一個開始寫Python腳本的基礎例子,開始部分,我么告訴系統需要使用那一個解釋器"#!/usr/bin/env python",然後我們通過"def main():"聲明一個main函數,最後2行代碼有mian()的先執行。你可以定義在你的腳本裡面定義其它函數,這樣使得你的代碼更容易的理解和修改維護:
#!/usr/bin/pythonnimport <module1>, <module2>n ndef myFunction():n ndef main():n myFunction()n nif __name__=="__main__":n main()n
函數
一種常見的寫法是把每個功能函數分開寫,執行一些操作之後然後返回結果。下面的這個偽代碼演示的例子就能夠很清晰的解釋這個概念:
# 聲明函數/邏輯處理ndef MyFunction:n ...do work...n return outputnn#在main函數裡面調用:ndef main():n output = MyFunction(input)n
類
Python類開始使用的時候會有點困難,因為它是教你以何種方式設計你的代碼,如果你掌握類的概念那麼你就可以把數據和定義按照類的邏輯分組,這樣類就擁有了屬性和與之想關聯的方法。當你定義一個類之後,你可以創建一個新的類,然後繼承之前創建的類的屬性和與之相關聯的方法,這編程就叫做面向對象編程。
如果你感到迷惑,那麼我建議你先不要去學習類,實際上,你並不需要類。但它可以讓你的代碼減少冗餘。下面我們將定義個新的類"Domain"使用"class"關鍵字,當你實例化Domain類型對象的時候,它的類型有多種方式去定義:
>>> import osn>>> class Domain:n... def __init__(self, domain, port, protocol):n#通過兩個內部變數存儲變數n... self.domain=domainn... self.port=portn... self.protocol=protocoln#構造一個url的方法n... def URL(self):n... if self.protocol == https:n... URL = https://+self.domain+:+self.port+/n... if self.protocol == http:n... URL = http://+self.domain+:+self.port+/n... return URLn# 調用os.system中主機命令lookup去解析域名n... def lookup(self):n... os.system("host "+self.domain)n...n>>>n>>> domain=Domain(google.com, 443, https)n>>>n>>> dir(domain)n[URL, __doc__, __init__, __module__, ip, lookup, port, protocol]n>>> domain.URL()nhttps://8.8.8.8:443/n>>> domain.ipn8.8.8.8n>>> domain.portn443n>>> domain.protocolnhttpsn>>> domain.lookup()ngoogle.com has address 74.125.228.233ngoogle.com has address 74.125.228.227ngoogle.com has address 74.125.228.232n
正如你所看到的,當你實例化一個Domian類之後你可以運行類中的方法。再次說聲,這個概念最初的時候很容易混亂,尤其是當你剛剛Python和編程的時候。嘗試一下去實現一個新的類在你的Python腳本裡面,我發現這是掌握這個概念最好的途徑。
使用sys處理命令行輸入值
最好我們來介紹一下sys模塊,它可以讓你讀取從命令終端輸入的值並且幫你引入到腳本裡面,它的語法很簡單,sys.agrv[0]就是一個實際的腳本名,並在命令行指定的每個參數後面分配一個下標。下面是一個簡單的例子:
#!/usr/bin/pythonnimport sysnnscript = sys.argv[0]nip = sys.argv[1]nport = sys.argv[2]nnprint "[+] The script name is: "+scriptnprint "[+] The IP is: "+ip+" and the port is: "+portn
當執行這個腳本的時候,並且後面跟三個參數執行之後的結果如下:
~$ python sys.py 8.8.8.8 53n[+] The script name is: sys.pyn[+] The IP is: 8.8.8.8 and the port is: 53n
上面的只是一個例子,大家可以繼續去研究其它Python模塊,因為它們能夠放你用最簡單的方式解決你遇到的問題。下一章將會介紹使用Python進行網路連接並且寫出一個基礎的掃描器.
推薦閱讀:
※Python入門 數據結構 dict字典
※Python入門到精通視頻課程(10)
※Python從零開始系列連載(10)——Python的基本運算和表達式(中)
※PyQt5系列教程(13):進度對話框
※Python入門 類class提高篇
TAG:Python教程 |