資料介紹
作為一個業(yè)余物理工作者以及入門計算機使用者, 選擇一門稱手的編程語言是非常重要的事。 從計算能帶, 處理數(shù)據(jù), 編寫腳本到畫圖, 寫個http 服務(wù)器分享文件( 看上去很專業(yè),實際在Python 里只有一行), 做個網(wǎng)頁, 幾乎全部需要計算機完成。 但是為了這其中每個不同的目的單獨去學一門語言成本簡直過于高, 于是需要一個一般用途( general-purpose )的語言,處理所有的事是非常自然的事情。
編程語言的兩極是Assembly 和Haskell, 一個接近硬件的本質(zhì), 一個接近計算的本質(zhì)。 一個是地獄, 處理著最繁瑣最耗神的事情: 內(nèi)存分配, 系統(tǒng)調(diào)度, 硬件架構(gòu), 各種寄存器A1, B2.。.一個是天堂, 優(yōu)美的寫著遞歸, 高階函數(shù), lambda 表達式, 優(yōu)美的并行計算( 完全不用考慮race condition)。 然而我們生活在人間, 所以大規(guī)模應(yīng)用的語言不可能如此純粹。 兩端中間游離著很多general-purpose 的語言, C, C++, Java, Ruby, 幾乎都能達到我們所有日常的要求。 只不過, 這些語言能做的Python 都能做, 而且Python 做得更好。接下來我說明為什么。
但是要說明本文的讀者不包括寫嵌入式, 寫javascript 以及寫大型項目對性能要求極高的人(即使是大型項目也可以80% 用python ,20% 用C),當然還有就是java 和C++ 的重度患者。(完全使用XX 工作意思不是“ 所有人都完全使用XX 工作”!顯然只是部分人。更多的是,非專業(yè)編程但是想提高效率的人。比如之前有篇《 完全使用*nix 工作》 ,C# , ios 開發(fā)的人顯然就一下也不能用。對于我, linux 再好我也只能裝在老電腦上交交CS225的作業(yè)。當我把mint, opensuse, archlinux 裝遍了,下一步就是gentoo 了的時候,否決它只有一條理由,我筆記本電池不經(jīng)用,而桌面linux 的電源管理。..。.. 感謝我的cpu 風扇~! )首先,我想說的是,為什么不用下面這些大部分人很熟悉的語言:
1. C: 你難道指針扎得不疼么? 每天收垃圾很舒服? 鍵盤上P 右邊兩個鍵是不是已經(jīng)按壞了?
2. C++: 學C++ 三年以內(nèi)請不要說你會C++; 學了三年以上的人, 恭喜你們, 你過去幾年浪費的時間我可以拿著香飄飄環(huán)繞地球一圈了。
3. Java: 不好意思, Java 的面向?qū)ο髮ξ襾碚f是原子彈打原子。而且Java7 才引進Lambda 表達式實在是太晚了, 即使java 以后會跟python 越來越像, 至于支持真正的函數(shù)式編程? 我希望下個末日之前可以實現(xiàn)。 而且有時候我確實需要單行執(zhí)行的解釋器而Java并沒有。
4. Ruby: Ruby 很好,但是你為什么不直接說你只是為了用RoR?
5. Lisp: 如果你用lisp, 你平時肯定會用python 或者perl 寫腳本。而且你會Lisp 不去拯救世界還來看這篇文章干什么?! 抽象語法樹什么的最討厭了。..。
6. Perl: 我第一次看Perl 的代碼就感覺像用腳寫的。 ” 為什么滿屏的正則表達式? “!
7. C#, php, javascript :呵呵。
8. Shell: 這算語言么?
9. Matlab: 第一,我窮酸學生沒錢每年買你的正版, 看到激活碼就想吐。第二,我不想心血來潮畫兩個心形函數(shù)的時候用1mb 的窄帶花兩天下個的文件在我128Gb 的固態(tài)硬盤里裝,然后用完兩個小時就刪,如此循環(huán)。第三,我會python 了不想再花時間學你的sb語法,熟悉你的.m 文件。第四,所有對windows 的壟斷的血淚控訴都直接對mathwork 轉(zhuǎn)過來吧~什么對開源,對自由,對的打擊信仰~絕對適用~ 第五, python 大部分時候如果
不比你好用至少跟你一樣好用,而這只是它不到10% 的功能,幾個程序員業(yè)余時間寫出來的庫。真心請matlab 你這個沒事發(fā)郵件“培訓一個星期2000 刀打折700刀”的大公司滾粗。
10. Haskell: 每次想靜下心來學haskell 都會情不自禁從范疇論看起。..。對于單純程序語言的使用者來說,用途(內(nèi)在邏輯) 大于一切不必要的語言細節(jié)。比如我就想建個數(shù)組放東西,為什么我要懂內(nèi)存回收?!
所以在易用性方面, Python 相對于他們作了很大改進的部分。好吧,你會說Python 沒有缺點么。確實有,而且很嚴重,那就是運行慢。而且是慢出風格,慢出自信。( Python 3 比Python 2 慢15% 以上, 這是一種什么風格! )相同的程序Python比C 慢幾百倍很正常。這讓Python 的發(fā)展受到很多限制。但是對于個人使用來說這個缺點完全不屬于缺點。第一,這個年代誰沒有奔騰酷睿2什么的。你手機的運行能力都可以幾毫秒內(nèi)把你在廁所拍的幾千張自拍液化, 磨皮, 磨骨好幾遍了。而且你覺得秒和秒的區(qū)別真的那么大么? 12 秒也不是很久啊。第二,很大程度上程序的慢更關(guān)乎于算法,比起O(n)和O( n^2) 的區(qū)別, 語言間的差異就顯得很小了,第三,請注意,如果你使用過Python 而且真實的覺得Python 慢,那么情看下這個列表:
1. Google 創(chuàng)立前的第一個網(wǎng)絡(luò)爬蟲。
2. Quora ,美國最大在線知識問答平臺,開復哥總是在上面拽文的。
3. Dropbox 。
4. Youtube
5. BT 。
6. 知乎,中國的Quora 。
7. 豆瓣,開創(chuàng)社交工具綠色系代表yp 的先河。你知道我要說什么了。。..。. 恩~他們有一個共同點~ ------------ 都是Python 寫的! 如果tmd的Dropbox 沒有覺得Python 慢,請你也有足夠的信心不要覺得Python 慢。另外八卦一下,現(xiàn)在Python 之父前兩天從google 去Dropbox 了,這是很值得自豪的事, 值得Dropbox 為之自豪。Python 是荷蘭人van Rossum1991 年開發(fā)完成的腳本解釋語言。起這個腦缺的名字是因為他是一個叫做Monty Python 的腦缺喜劇團體的腦殘粉(BTW,Monty Python 出演的巨蟒與圣杯是英國電影史上跟大話西游同樣地位的喜劇, 其中亞瑟王被黑成了炭, 里面圓桌騎士們拿著塊石頭敲來敲去各處蹦達著, 看影評我才知道這是表示他們在騎馬%& 。.×( )。 于是人們知道以這么腦殘的名字取的語言不是像brainfuck 語言一樣是brainfucker ,那么就會像莫里蓋爾曼以喬伊斯“芬尼根的守夜人”中虛構(gòu)名詞來命名的夸克一樣, 成為一個一個不朽的新創(chuàng)造。Python 顯然屬于后者。接下來,說正題,為什么Python 如此先進(對于初學者) 。
代碼簡潔性和可讀性寫過hello world , hello android , hello ** 的人都知道,學語言最好的途徑就是寫和讀(即使是學書面的自然語言) 。所以代碼的可讀性是選擇學一門語言的關(guān)鍵因素,因為你代以后會花很多時間讀別人的代碼。可讀性帶來的影響是非常深遠的。有種說法, 說在遙遠的古代阿拉伯數(shù)字傳入之前歐洲之前, 其數(shù)學發(fā)展幾乎為0, 而造成這種緩慢的原因就是因為復雜的羅馬數(shù)字的廣泛使用。這表明很多時候即使我們不愿意承認, 往往是形式?jīng)Q定的內(nèi)容。 比如羅馬數(shù)字沒有0, 自然很多數(shù)學概念就難以發(fā)展。 沒有流形也不可能發(fā)展廣義相對論一樣。所以。..。..。..。.. 如果想以后從此過上幸福的生活, 請不要選用perl. 如果不幸選擇了perl , 那么就君就一入侯門深似海, 從此蕭郎是路人了。當以后你兩行清淚的看著自己十天前寫的不過10幾行的楔形文字時, 你就會明白。而Python 的可讀性是我見過最好的:
1. Python 的代碼格式使用縮進而不是括號。首先節(jié)省了很多行數(shù), 變得而為緊湊, 而美觀。相傳的俄羅斯人偷美國NASA 的C 代碼那個段子滿屏括號的情況是不可能出現(xiàn)Python 版本的。 第二,邏輯相當清晰。 循環(huán)的結(jié)束與開始一目了然。 第三, 屏幕右方得到充分利用。 比如使用24寸屏幕的人是不是感覺自己總是望著左邊編程。..。. 和17 寸等高的屏幕區(qū)別不大, 很費右邊的電。比如, 這是某個C 用來圖像采樣的算法的代碼:
- 用Python學習科學編程 0次下載
- 用Python寫網(wǎng)絡(luò)爬蟲 21次下載
- 如何完全使用python實現(xiàn)工作 9次下載
- python實現(xiàn)簡單爬蟲的資料說明 21次下載
- Python字符的實例詳細說明 7次下載
- 使用文件保存游戲的python代碼和資料說明 11次下載
- Python的單行命令實例說明 1次下載
- python的文件操作實例代碼說明 11次下載
- Python的學習和使用經(jīng)驗說明 16次下載
- 如何使用Python繪制PDF文件教程詳細說明 12次下載
- Python的基本知識和特點及功能詳細說明 13次下載
- 如何學習Python?Python編程環(huán)境搭建詳細說明 25次下載
- python數(shù)組的使用詳細函數(shù)資料說明 15次下載
- python基礎(chǔ)教程之如何使用python進行環(huán)境搭建 32次下載
- 完全自學指南Python爬蟲BeautifulSoup詳解 39次下載
- 用python寫驗證環(huán)境cocotb 279次閱讀
- Python自動化測試框架及其應(yīng)用 354次閱讀
- 用Flet+Python寫個美觀的登錄程序 4858次閱讀
- 如何測試Python環(huán)境 4683次閱讀
- 如何安裝Python解釋器 5202次閱讀
- 用Python寫個小工具網(wǎng)頁 1083次閱讀
- Python的下載與安裝 1247次閱讀
- Python類的屬性和方法是什么 763次閱讀
- python接口文件使用說明 1979次閱讀
- Python語言在人工智能中的功能及優(yōu)勢 1.1w次閱讀
- python適合做什么開發(fā)_python未來發(fā)展怎么樣 8251次閱讀
- 介紹Python 3 的功能 讓人輕松地從Python 2遷移到Python 3 4392次閱讀
- python串口編程實例 4.6w次閱讀
- windows平臺下python安裝與配置 6355次閱讀
- python2與python3問題的分析 994次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多