Python 好在哪裡,為什麼我認識的幾個很厲害的程序員都說編程新手用它做為入門語言很好?


Life is short, you need Python.


在國內,OI之類都要求pascal或者c或者c++,高中信息技術教vb,所以絕大多數中小學生應該都是這樣入門的。至於python,那個年齡段的人應該沒多少人聽說過。


簡單即是美


Python 語法比較簡單。寫程序最重要的是鍛煉邏輯思維能力,Python 簡單的語法和少到可以忽略不計的語法糖可以讓初學者專註于思考要做的事情,而不需要在過程上大費周章。


這種解釋性的語言的好處是code example往REPL環境里一貼就能跑出來,而C/C++等還要面臨配置include、lib路徑,編譯選項,理解各種奇怪的linker error等等

另,BASIC也是一個很好的入門語言


「以C或C++做入門語言」有得有失,整體上看,與「以Python做入門語言"相比,沒實質優勢。

關鍵在這點:「千萬不要讓學習者覺得很難,否則大部分學習者將止步於初學」。

1. 當年我初學嚴蔚敏版《數據結構》時,興緻勃勃地按書敲代碼,調試時遇到各種奇葩錯誤,困難重重,於是心灰意冷,放棄學習,直到很久以後才撿起。(當時最希望拿到一個可運行的代碼,結果沒拿到 = =|||)

========

我的理解:

對編程新手來說,興趣和好習慣的培養是最重要的,而Python語法簡單、規範、易上手,有利於培養興趣和好習慣,所以說它很好。(雖然我最推崇的語言是VB ...)

大學初學編程語言(C語言)的時候,我和身邊大部分人都不喜歡寫代碼,究其原因,大概有以下幾點:

1. 編譯器不好用(Turb C),寫出的代碼,要費盡周折才能執行,還經常提示難解Error

2. 語法複雜。變數都得聲明,行末得加分號,段落得用大括弧,字元串處理複雜 ...

而Python對應的:

1. 編譯器好用(Python自帶),寫的代碼可以一鍵執行,無需編譯、連接的複雜過程

2. 語法簡單。變數無需聲明,行末不加分號,段落不用大括弧,字元串處理簡潔 ...

高下立見。

如果能通過Python對編程一技開始入門,足矣

-

題外。

Python的優點

1. 語法簡單,易上手

C語言的最簡單程序:

#include &
int main(){
printf("hello world");
return 0;
}

Python的最簡單程序:

print "hello world"

2. 數據結構簡單,易使用

C語言的哈希表:

#include &
typedef struct _hash_t{
char key[99];
int value;
}hash_t;
int hash(char key[]){
// ...
}
void add(hash_t map[], char key[], int val){
// ...
}
int get(hash_t map[], char key[]){
// ...
}
int main(){
hash_t map[100];
add(map, "neuxxm", 2013);
printf("%d
", get(map, "neuxxm"));
return 0;
}

Python的哈希表:

map = {}
map["neuxxm"] = 2013
print map["neuxxm"]

3. 編碼處理

4. cgi界面

5. 網路編程

6. 代碼風格

7. 關鍵字精簡程度

你可以看到:C語言的else if = Perl的elsif = Python語言的elif

... (有空繼續補。。。 = =||| in 13.03.13)

Python的缺點

1. 語法簡單,邏輯不清

C語言:"函數&<=庫"邏輯清晰

Python:函數來源不明

2. 數據結構簡單,不容易了解細節

C語言:自己實現的哈希表,原理了解深刻

Python:用系統提供的哈希表,原理了解不深


同意@岳陽 的回答。

很多人是從 C/C++ 或者 Java 入門的,用的久了自然這些更底層一些的語言裡面的缺陷就顯露出來。正好遇到 Python 這門簡潔方便的語言,自然覺得Python很好。當有別人想學一門語言入門的時候就自然推薦了Python。

我覺得入門的話 C/C++ 或者 Java的基礎一定要打好的,這樣才能深入的了解程序到底是怎麼運行。所以還是建議用C/C++ 或者 Java 入門。先會一門比較複雜一些的語言,再去學簡潔一些的語言會比較輕鬆一些。

當然反過來,選擇一門簡單些的語言也是好的,至少不會讓人在最開始打消興趣。但是,只會Python、不會 C/C++/Java 的程序員,我至今還沒有遇到過。對於很厲害的程序員,只會 Python 通常是遠遠不夠的。


推薦@關小羽 和@趙扶風 的答案。

特別是對於編程思維而言,在言必稱 OO 的世界裡,你會發現原來 OO 並非是一切。


我的學習路徑是C -&> C++ -&> Lua -&> Python。

Python好就好在封裝了和邏輯無關的底層細節,讓程序能更加直接地反應運算邏輯。而C/C++/Java這些,類型限定嚴格,運算邏輯淹沒在各種為了迎合類型限定而做的額外工作中。

但正是因為太靈活了,光看代碼很難看出一個變數是什麼類型。而且編譯期還發現不了,要運行到特定情況才爆發。所以Python需要比C/C++更多的注釋。

對於初學者,由於代碼簡短,邏輯簡單,用Python可以快速讓他知道「編程是什麼一回事」。


正在看《c++語言的設計和演化》這本書,目前這是市面上唯一一本如此細緻詳盡的介紹一個語言的設計哲學,演化過程的書籍。在開篇Bjarne Stroustrup就說自己會避免去說哪門語言好,哪門語言不好,因為這樣有失公允,也著實沒必要。各個語言只有在特定的條件下才有合適不合適之說。

所以我的第一個建議:看看你今後的職業發展方向如何,如果你是做嵌入式,選擇C;如果你是搞ios,選擇object-c;如果你是搞後台伺服器,選擇C/C++。

還有《黑客與畫家》這本書也對語言選擇有自己的看法,要選擇沉澱下來的語言。因為有些語言只是曇花一現。所以我的第二個建議:如果入手的話還是選一個沉澱下來的語言比較好,因為這會讓你知道程序設計語言的歷史。

第三個建議:至於主流語言比較,推薦你從《unix編程藝術》這本書中「第14章——語言」來找答案。

最後一個建議,學東西千萬不要人云亦云,要學會自己去思考。


其實我也不知道。

我曾經問我的一個搞音樂的朋友,如果我想學一種樂器,選什麼最容易入手。他給我的答案是ukulele,小巧,攜帶方便,學習曲線短平快。於是我在某寶上搞了一把,價錢還不便宜。每天晚上回家玩上個把小時,結果1周時間卻連最簡單的小星星都沒學會。〒_〒

一周的業餘時間我能把python學個七七八八,卻玩不轉傳說中最簡單的樂器。為何?因為我編程已經很多年了,即便學一門新語言,也能很快窺探其中門道,從而快速入手。但對門外漢來說,卻有很多的基礎知識和術語要先跨過。

python很簡單嗎?c就很難嗎?我不覺得。


在線筆試要寫程序的話,用python會比C/C++等快很多吧,保證能夠按時完成


這個做入門語言的話真不知道可不可以,個人建議以C或C++做入門語言。python的好處是幫助你養成好的編程風格(我們老師叫做好的coding style),python與c和c++不同的是解釋器根據代碼的縮進來判斷執行,而不是根據「;」(大多初學c++的都會忘記寫「;」)。其次,python進行數學運算時不怕精度溢出(用c++、java的話要經常考慮精度溢出的問題)。還有就是完全面向對象、可移植、簡單易學。

詳細的可以參考機械工業出版社的《Python學習手冊》。


為什麼我認識的幾個很厲害的程序員都說編程新手用它做為入門語言很好

既然這幾個高手是你認識的,直接問他們或者邀請他們來回答啊


擴展庫多


簡單直接,不像C++,Java一樣,寫個簡單程序會要用到很多冗餘的東西。而且有非常非常豐富的各種庫可以使用。

缺點是debug麻煩,縮進有時候挺噁心的,維護大型代碼會比較頭疼


推薦閱讀:

哪種編程語言的語法最漂亮?
你最喜歡、熟練的編程語言中最讓你不爽的是什麼東西?
Rust 語法很醜陋嗎?如果是,為什麼醜陋呢?為什麼設計成這樣呢?
最噁心的語言是 Objective-C么?
Objective-C 語法上有任何的優點嗎?

TAG:編程語言 | Python | 編程 |