標籤:可讀性 16px extend 命令列 解釋 使用 iostream 支付系統 win
二、Python 只適合測試?
關於Python是一種什麼樣的語言,這裡不打算說對象、類之類的術語。我們可以先來看一看,時至今日 Python 都在哪些領域裡得以應用:
- 電信基礎設施 (Twilio)
- 支付系統 (PayPal, Balanced Payments)
- 神經科學和心理學
- 數值分析和工程 (numpy, numba)
- 動畫(LucasArts, Disney, Dreamworks)
- 遊戲後台 (Eve Online, Second Life…)
- Email 基礎設施 (Mailman, Mailgun)
- 媒體儲存和處理 (YouTube, Dropbox)
- 操作和系統管理 (Rackspace, OpenStack)
- 自然語言處理(NLTK)
- 機器學習和電腦版本 (scikit-learn, Orange)
- 安全性和滲透性測試 ( eBay/PayPal )
- 大資料 (Disco, Hadoop support)
- 搜尋系統 (ITA, Ultraseek, 還有 Google)
- Internet 基礎設施 (DNS) (BIND 10)
在如此之多領域的公司裡得到廣泛使用的Python,難道只是用在它們的測試部門?至少根據網路上的謠言,豆瓣、Youbute、和 Dropbox 都是以 Python 為主體語言搭建起來的網站。Python 強大的能力(例如:網路處理能力,還有各種擴充包),可以使得程式員們把注意力投放在實現業務上,而不是記憶體管理,介面設計之類的細節上。
事實上,Python 最常見的應用情形是:
1.使用 Python 快速產生程式的原型(有時甚至是程式的最終介面,你會喜歡 wxPython 的),
2.對其中有特別要求的部分,使用更合適的語言(尤其是 C/C++)改寫。
由於 Python 與 C 的天然聯絡,它們之間的相互調用從來都不是問題。特別是 Python 如何調用 C 在《 Programming Python》的 Chapter 22. Extending Python 部分有介紹。Python 調用 C 的動態/靜態庫並不是一件複雜的事情。實際上, Python 原生的Regex庫就是用 C 語言實現的。
三、Python 只是指令碼語言?
Python 確實的可以完成指令碼語言的功能(使用更簡潔的方式)。Shell 工具往往從命令列運行,實現諸如文字檔的處理以及調用其他程式等任務。Python 能做的更多。
有專家稱 Python 是大資料全棧式開發語言,在“雲基礎設施”、“DevOps”、”網路爬蟲” 和 “資料處理”領域,Python 都是最流行的語言。
對於開源軟體向來遲鈍的微軟參加2015年 PyCon 時高調宣布提高 Python 在 Windows 上的編程體驗,包括 Visual Studio 支援 Python,最佳化 Python 的 C 擴充在 Windows 上的編譯等等。腦補下未來 Python 作為 Windows 預設組件的情境。
四、Python 之NB
和 Python 之禪(注1)裡表述的一樣,簡單優雅已經深入Python骨髓。正是這個原因,Python 才被認為上手簡單,開發快速,程式可讀性超強;也正是這些特點,互連網公司更有意願使用它,因為快速發布是它們的生存之根本。在實踐中,程式員可以很直觀地發現,用 Python 寫的代碼通常要比同樣的 C/C++ 或 JAVA 程式要短得多。
Python
#!/usr/bin/pythona = 0while(a <= 10): a = a + 1 print ‘The number is ‘+aprint ‘while is end‘
C++
#include <iostream>int main(){ int a = 0; while( a <= 10) { a = a + 1; cout<<"The number is "<<a<<endl; } cout<<"while is end"<<endl;}
能做到這些,是因為Python
4.1 變數不需要聲明
這個真的很方便。變數的聲明和定義一定會嚴重打斷對代碼邏輯的思考,還有對齊的麻煩。記憶體的管理,這簡直都就是 C/C++ 編程中最常見的雷區,由於省略了聲明,這也不再是問題了。
4.2 縮排而不是
{
}
Python 是以縮排來管理代碼結構的。這樣做有他的優越性:程式員們一定有過漏寫 ‘{’ 或者 ‘}’ 的經曆。如果使用的編譯器或者解譯器優秀的話,漏去的’{’ ‘}’的確可以非常容易的加上。但如果不是這樣,請在複雜的代碼中漫遊一會吧。因為可能編譯器會通知一個 ‘錯誤’ 的錯誤資訊,這個錯誤的位置可能會離你真正錯誤的地方很遠(十萬八千裡?!)。相對於此,以縮排管理方式的 Python 來說,程式員幾乎不用考慮這種問題。其次以縮排方式區分塊的Python在進行複雜的嵌套中,Python代碼就顯得明了許多了。
Python
class python: def Hello(self): print ‘Hello‘ def count(self, n): in = 0 while( in <= n): in = in + 1 print in
C++
class python{public: void Hello(void) { cout<<"Hello"<<endl; } void count(int n) { int in = 0; while(in <= n) cout<<in<<endl; }};
相比較來看,Python的代碼更能分清其層次,而對於C++這樣的代碼雖然能夠編譯成功。但是,對於其日後的維護,會造成無盡的痛苦。由此,可以看出 Python的文法簡潔。同時,Python 的查錯能力也非常強。在一般情況下,Python的解譯器能夠準確指出錯誤的位置和原因。
Python 的縮頸唯一沒有做好的就是沒有指定一定要縮排4個空格。
Python 能幹什麼