首頁>技術>

為什麼使用Python

假設我們有這麼一項任務:簡單測試區域網中的電腦是否連通.這些電腦的ip範圍從192.168.0.101到192.168.0.200.

福利:小編希望想學習python的朋友能認真看完這篇文章;你會有很大收穫的。同時,可以轉發文章+私信【資料】獲取資料隨時下載,供大家學習。

思路:用shell程式設計.(Linux通常是bash而Windows是批處理指令碼).例如,在Windows上用ping ip 的命令依次測試各個機器並得到控制檯輸出.由於ping通的時候控制檯文字通常是"Reply from ... " 而不通的時候文字是"time out ... " ,所以,在結果中進行字串查詢,即可知道該機器是否連通。

這段程式碼執行得很好,問題是為了執行這段程式碼,你還需要做一些額外的工作.這些額外的工作包括:

編寫一個類檔案

編寫一個main方法

將之編譯成位元組程式碼

由於位元組程式碼不能直接執行,你需要再寫個小小的bat或者bash指令碼來執行.

當然,用C/C++同樣能完成這項工作.但C/C++不是跨平臺語言.在這個足夠簡單的例子中也許看不出C/C++和Java實現的區別,但在一些更為複雜的場景,比如要將連通與否的資訊記錄到網路資料庫.由於Linux和Windows的網路介面實現方式不同,你不得不寫兩個函式的版本.用Java就沒有這樣的顧慮。

對比Java,Python的實現更為簡潔,你編寫的時間更快.你不需要寫main函式,並且這個程式儲存之後可以直接執行.另外,和Java一樣,Python也是跨平臺的.

有經驗的C/Java程式設計師可能會爭論說用C/Java寫會比Python寫得快.這個觀點見仁見智.我的想法是當你同時掌握Java和Python之後,你會發現用Python寫這類程式的速度會比Java快上許多.例如操作本地檔案時你僅需要一行程式碼而不需要Java的許多流包裝類.各種語言有其天然的適合的應用範圍.用Python處理一些簡短程式類似與作業系統的互動程式設計工作最省時省力.

Python應用場合

足夠簡單的任務,例如一些shell程式設計.如果你喜歡用Python設計大型商業網站或者設計複雜的遊戲,悉聽尊便.

2 快速入門

2.1 Hello world

安裝完Python之後(我本機的版本是2.5.4),開啟IDLE(Python GUI) , 該程式是Python語言直譯器,你寫的語句能夠立即執行.我們寫下一句著名的程式語句:

print "Hello,world!"

並按回車.你就能看到這句被K&R引入到程式世界的名言.

在直譯器中選擇"File"--"New Window" 或快捷鍵 Ctrl+N , 開啟一個新的編輯器.寫下如下語句:

print "Hello,world!"

raw_input("Press enter key to close this window");

儲存為a.py檔案.按F5,你就可以看到程式的執行結果了.這是Python的第二種執行方式.

找到你儲存的a.py檔案,雙擊.也可以看到程式結果.Python的程式能夠直接執行,對比Java,這是一個優勢.

2.2 國際化支援

我們換一種方式來問候世界.新建一個編輯器並寫如下程式碼:

raw_input("Press enter key to close this window");

在你儲存程式碼的時候,Python會提示你是否改變檔案的字符集,結果如下:

# -*- coding: cp936 -*-

raw_input("Press enter key to close this window");

將該字符集改為我們更熟悉的形式:

# -*- coding: GBK -*-

raw_input("Press enter key to close this window");

程式一樣執行良好.

2.3 方便易用的計算器

用微軟附帶的計算器來計數實在太麻煩了.開啟Python直譯器,直接進行計算:

a=100.0

b=201.1

c=2343

print (a+b+c)/c

2.4 字串,ASCII和UNICODE

可以如下打印出預定義輸出格式的字串:

print """

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

"""

字串是怎麼訪問的?請看這個例子:

通常我們可以將module的包路徑放到環境變數PYTHONPATH中,該環境變數會自動新增到sys.path屬性.另一種方便的方法是程式設計中直接指定我們的module路徑到sys.path 中:

總結

你會發現這個教程相當的簡單.許多Python特性在程式碼中以隱含方式提出,這些特性包括:Python不需要顯式宣告資料型別,關鍵字說明,字串函式的解釋等等.我認為一個熟練的程式設計師應該對這些概念相當了解,這樣在你擠出寶貴的一小時閱讀這篇短短的教程之後,你能夠通過已有知識的遷移類比儘快熟悉Python,然後儘快能用它開始程式設計.

當然,1小時學會Python頗有譁眾取寵之嫌.確切的說,程式語言包括語法和標準庫.語法相當於武術招式,而標準庫應用實踐經驗則類似於內功,需要長期鍛鍊.Python學習了Java的長處,提供了大量極方便易用的標準庫供程式設計師"拿來主義".(這也是Python成功的原因),在開篇我們看到了Python如何呼叫Windows cmd的例子,以後我會盡量寫上各標準庫的用法和一些應用技巧,讓大家真正掌握Python.

但不管怎樣,至少你現在會用Python代替繁瑣的批處理寫程式了.希望那些真的能在一小時內讀完本文並開始使用Python的程式設計師會喜歡這篇小文章,謝謝!

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Appium+mitmdump 爬取京東商品!有你想買的嘛?