查看: 1494|回复: 7
|
Python ,讓寫程式更簡單
[复制链接]
|
|
发表于 9-12-2008 11:33 AM
|
显示全部楼层
|
|
|
|
|
|
|
Python ,讓寫程式更簡單
不論編譯或直譯的程式語言都有千萬種,我們為什麼選擇 Python 呢?以下摘錄 Tim Peters 的 The Zen of Python :
美麗優於醜陋,明講好過暗諭。
簡潔者為上,複雜者次之,繁澀者為下。
平舖善於層疊,勻散勝過稠密;以致輕鬆易讀。
特例難免但不可打破原則,務求純淨卻不可不切實際。
斷勿使錯誤靜靜流逝,除非有意如此。
在模擬兩可之間,拒絕猜測的誘惑。
總會有一種明確的寫法,最好也只有一種,
但或須細想方可得。
凡事雖應三思後行,但坐而言不如起而行。
難以解釋的實作方式,必定是壞方法。
容易解釋的實作方式,可能是好主意。
命名空間讚,吾人多實用。
Note:
Zen 在佛教中是禪的意思,這篇原文在 PEP 20 ,翻譯取自 PyTUG 的 PotWiki 。
「明講」也就是清楚,「平舖」也可以用乾淨來講,因而清楚、簡潔、乾淨這三者為 Python 語法中最為突出的特色,不但對於程式的撰寫及維護容易,同時形成易學、易讀,這可是相當適合初學者的呢!
Python 的發明者 Guido van Rossum 曾提出一個口號: “There is only one way to do it.” ,中文意思是:「做一件事情只有一個方法。」固然我們知道一個問題的解決方法往往不只一個,各種不同的方法可能會帶來不同的影響與成效,然而當我們把目光焦點集中在程式語法的表達上時,或許,當語法描述一種方法只有一種寫法時,某種程度上來講,我們更能洞察問題的本質。
Python ,讓寫程式更簡單!
http://planet.python.org.tw/?page=1 |
|
|
|
|
|
|
|
发表于 8-12-2008 11:24 PM
|
显示全部楼层
有意思的是,这正好和Perl 语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It.)(不只一種方法來做這件事) 完全相反,这似乎是人们常把Perl和Python互相比较的重要原因。
另一個 Perl 程式設計師常常想起的 Perl 俗語是:
Easy things should be easy, and hard things should be possible.
相比 C、Pascal 這樣的「高級」語言而言,Perl語言直接提供泛型變數、動態數組、Hash表等更加便捷的編程元素。Perl 具有動態語言的強大靈活的特性,並且還從C/C++、Basic、Pascal 等語言中分別借鑒了語法規則,從而提供了許多冗餘語法。使得程式設計師可以忽略計算機內部資料存儲、類型、處理方法、運算規則、甚至內存越界等等的細節,而將思考中心放在所需要的程序邏輯上。就這一點而言,很多 Perl 程式設計師認為目前只有 Perl、Python等泛型語言才能稱為「高級」語言,而 C、Pascal 甚至 C++ 這些只能稱為「中高級」語言而已。可以說,在統一變數類型和掩蓋運算細節方面,Perl 做得比 Python 更為出色。
由於從其他語言大量借鑒了語法,使得從其他程式語言轉到 Perl 語言的程式設計師可以迅速上手寫程序並完成任務,這使得 Perl語言是一門容易用的語言。但問題是這樣寫出來的「類xx語言」的 Perl 程序對不熟悉這種語言的程式設計師卻如同天書,這使得 Perl 語言易寫不易讀。 |
|
|
|
|
|
|
|
楼主 |
发表于 9-12-2008 01:20 PM
|
显示全部楼层
回复 3# tensaix2j 的帖子
好的东西一定要分享..file:///G:/module.jpg
[ 本帖最后由 mokth 于 9-12-2008 01:52 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 9-12-2008 02:40 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 9-12-2008 03:30 PM
|
显示全部楼层
曾經花了一段時間去學Python。 
當初只是因爲想找一個免費易學的、有免費IDE的,
可以替代或與C/C++的混合使用的、以及有GUI Toolkits 的語言。
我還花了不少時間做了一些研究,覺得python是不錯的。
由於我是C/C++出身的,所以學起來完全沒問題。
唯一無法讓我滿意的就是它沒有指針(Pointer )。
指針是用途很廣的功能,容易運用。
在用來編寫generic functions, classes, wrapper, libraries etc 是蠻好用的。
許多高級語言的設計者都喜歡說指針容易使編寫人迷惑,
除蟲(debug)困難、以及容易犯錯而產生臭蟲。
然但對我而言,那只不過應該歸類為對指針掌握不到家者與初學者而已。
Python 雖然沒有提供指針的功能,不過還是有解決問題的方法。
那就是結合了Python + C/C++ + swig。
我總結了一套自己所需要的Python工具就包括了:-
Python, wxPython, boa constructor, swig, gcc/g++.
不過到現在我還是無法找到以下C 函數相應的用法:-
fscanf(hfile,"%d,%f,%ld\n",&intnum,&floatnum,&longnum);
Python 雖好,但是它還是有極限,它始終比不上我的老朋友C/C++好。
當我在開始正式要編程時就遇上問題了,
Python 與windows 或硬件的dll 都必須要多編一層wrapper。
而且並不是都能夠正常的工作。
其實還蠻花精神與時間的來做調試的。
最後由於我找到了免費的C/C++ 的IDE,所以放棄了Python。
目前我使用的是:
-MinGW, gcc/g++, wxWidgets, CodeBlocks
總結我的經驗:
Python 的優點,就如它網站所說的。http://www.python.org
它適合用於web enable application, database, networking, game development etc.
但是不適合control, hardware/system interface, realtime/time critical application etc.
另外,現在似乎還不是有許多平臺/server提供Python的runtime engine。
Python 是很好的 RAD 工具 。我並不排除以後會再與C/C++,database一起混合使用。
[ 本帖最后由 Sunyata 于 9-12-2008 05:32 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 9-12-2008 03:53 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 9-12-2008 04:58 PM
|
显示全部楼层
不习惯 python用 indentation 来做scope 的 delimeter我还是比较喜欢 tcl 的everything is string 的概念
[ 本帖最后由 tensaix2j 于 9-12-2008 05:00 PM 编辑 ] |
|
|
|
|
|
|
| |
本周最热论坛帖子
|