如何理解python大法好?
目前用java-selenium-jenkins搞些測試,之前學過一點Python皮毛,但因為時間少,沒深入,所以沒能領會精髓;一直聽說Python大法好,求解答。
前python腦殘粉來說真相:python精髓是import!
這只是程序員們之間的調(zhuang)侃(bi)而已,我也喜歡跟風鼓吹,類似還有「php宇宙第一」,「erlang大法好」,23333
- 在Imperative Programming裡面
用Python寫代碼的體驗最好,就和寫偽碼一樣輕鬆。
最重要的一點原因就是他沒有其他語言,那麼多複雜的特性,我用Python不會像寫Ruby那樣戰戰兢兢,深怕一不小心就觸發了Ruby某個語法糖。(雖然Ruby是我見過可以用最少的代碼量,完成複雜項目的語言,沒有之一,我也因此深愛Ruby)
至於C#,Java,PHP5 這尼瑪就是三兄弟了,長得也太像了,使用體驗也差不多,工業化語言,大家懂的。
- Functional Programming
只用過Erlang, 相比命令式語言,應該可以說是思維方式上的進一步提升,是從更系統層面、更大局方向的開發,在這些方面使用體驗完爆命令式編程,不過拿它來做個單機命令行程序總有種殺雞牛刀的感覺。
以上瀉藥主要是寫起來痛苦比較小(當然了,對不同人來說,痛苦點可能不一樣)
寫代碼就跟寫偽碼似的,寫起來爽快;強制縮進看起來爽;最後,「import在手,天下我有」的感覺。。。可幫助你快速達到目的,感覺有很強的工具感呢補充:以前用shell在伺服器上寫一些腳本處理數據,最近決定用python寫寫試試,當我寫第一個class的時候就已經收不住了,感受到了python寫腳本帶來的極致體驗,並且OO使腳本充滿了活力。
呵呵! Python 可真是深思熟慮設計出來的。嗯。深思熟慮的搞出來了,然後又深思熟慮的搞了個 Python 3。
各種語言大法都有人說好啊,比如Ruby,樓上有人說Python的Hello World程序只要:print "Hello World",我還說Ruby只要p "Hello World"呢。大法好不好,全在於自己的認知,不在於語言本身。
不能太絕對,要看用於什麼。
那是因為c好,python才好。最近在讀python的源碼,感覺和glib挺像,所以常常在想,python其實才是c的自然延伸。不像其他語言另起爐灶,python直接粘合那些千錘百鍊的c庫,在此基礎上提供穩定可靠的面向對象的封裝,比glib優雅,比c++穩健。對c程序員來說,其實是更自然的發展。
用過都說好 誰用誰知道 import在手 天下我有
題主別打我,我只是貼張圖
其他語言和python相比就是反智的。我經常在推薦python的過程中給有一點編程基礎的人舉這個例子: 如何交換兩個變數的值?
c++:
void swap(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
int main() {
int a = 1, b = 2;
swap(a, b);
}
java:
static void swap(int[] a, int i, int j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
public static void main(String[] args) {
int a = 1;
int b = 2;
int[] r = new int[2];
r[0] = a;
r[1] = b;
swap(r, 0, 1);
a = r[0]; b = r[1];
}
需要提前把兩個數放到數組裡
python:a = 1
b = 2
a, b = b, a
每每講到這裡,我都要看看聽者的表情變化,一水的眉頭緊皺,然後霍然開朗起來。此時我都要腦補一下他們的心理活動——怎麼能這麼寫?就該這麼寫呀。
另外一個:縮進表層級。開啟吐槽模式。當初給中學生講C語言,知道能痛苦到什麼程度嗎?學生寫了4、5百個字元的代碼,只用3行!!!如果不是#include,#define必須佔一行的話,他就用一行了!!!問丫為什麼?懶得打回車............可丫有bug呀,丫自己不會調呀,得老師我調呀。這麼一坨怎麼調呀?讓丫改格式,遇分號給我回車,過會我過來看看:
for(i=0;
i&<10;
i++){printf(%d ,i);
}
滿目的這種代碼,你丫的會查找替換你很牛嗎?看不見該雙引號嗎?
你們知道成天面對這樣的學生、這樣的代碼,人生都是灰暗的了啊!!!果斷換python,只要我不告訴他們分號的作用,他們就得老老實實的縮進,縮進,再縮進,整個人生都亮了。回歸正常模式還有一些語言特性像mixins、decorators,雖然和其他語言有類似的地方,但是python的實現絕對的是經過深思熟慮而設計出來的,比其他語言優雅得多,好用很多,關鍵是好講好懂。沒有好語言,也沒有壞的語言,只有最合適的語言!
編程語言和自然語言其實是一樣的,去美國鄉村說中文,去中國縣城說英語,去南美部落說泰語,去東南亞叢林說瑪雅語,想想都覺得很蛋疼不是?
所以說:
在美國鄉村,英語大法好;在中國縣城,中文大法好;南美鄉村,西語大法好;東南亞叢林,泰語緬甸語柬埔寨語大法好。。。把這個道理映射到編程語言上就行了。感覺很人性化 寫起來很爽很方便就是了(≧▽≦)
"Python大法好"可能是指Python相對於C/C++,Java...這些語言的好, 特別是Java, new來new去,煩死了都.但是可能根本沒有Ruby爽, 寫Ruby簡直是在飛!
推薦閱讀: