鍍金池/ 教程/ Python/ 關(guān)于 Python 的故事
標準庫 (4)
如何成為 Python 高手
標準庫 (6)
標準庫 (3)
類(2)
Pandas 使用 (2)
xml
用 tornado 做網(wǎng)站 (5)
文件(1)
練習(xí)
列表(3)
從小工到專家
除法
錯誤和異常 (2)
函數(shù)(1)
用 tornado 做網(wǎng)站 (7)
為做網(wǎng)站而準備
函數(shù)練習(xí)
標準庫 (8)
Pandas 使用 (1)
回顧 list 和 str
字典(1)
用 tornado 做網(wǎng)站 (3)
字符串(1)
函數(shù)(2)
寫一個簡單的程序
將數(shù)據(jù)存入文件
語句(5)
SQLite 數(shù)據(jù)庫
集成開發(fā)環(huán)境(IDE)
集合(1)
類(1)
用 tornado 做網(wǎng)站 (6)
用 tornado 做網(wǎng)站 (2)
自省
語句(4)
錯誤和異常 (1)
用 tornado 做網(wǎng)站 (4)
集合(2)
列表(1)
標準庫 (1)
生成器
mysql 數(shù)據(jù)庫 (1)
第三方庫
實戰(zhàn)
運算符
類(3)
字典(2)
語句(1)
數(shù)和四則運算
語句(2)
文件(2)
MySQL 數(shù)據(jù)庫 (2)
電子表格
迭代器
mongodb 數(shù)據(jù)庫 (1)
特殊方法 (2)
特殊方法 (1)
字符編碼
編寫模塊
用 tornado 做網(wǎng)站 (1)
標準庫 (5)
函數(shù)(4)
類(5)
字符串(2)
關(guān)于 Python 的故事
函數(shù)(3)
字符串(4)
處理股票數(shù)據(jù)
常用數(shù)學(xué)函數(shù)和運算優(yōu)先級
字符串(3)
為計算做準備
多態(tài)和封裝
類(4)
迭代
語句(3)
錯誤和異常 (3)
分析 Hello
Python 安裝
標準庫 (2)
列表(2)
元組

關(guān)于 Python 的故事

我已經(jīng)在《零基礎(chǔ)學(xué) Python(第一版)》中寫了一個專門講述 Python 故事的——嘮叨一些關(guān)于 Python 的事情——章節(jié),今天再寫類似的標題,不打算完全重復(fù)原來的,只是把部分認為重要的或者不可或缺的東西復(fù)制過來。

越來越火的 Python

在前幾年(before 2011),我跟一些朋友介紹 Python 的時候,看到的常常是一種很詫異的眼神,通常會聽到:

“那時什么東西?”
“解釋性語言會不會很慢?”
“沒聽說誰用呀?”
“能像 php,java,c# 那樣用來做網(wǎng)站嗎?”
“什么?你說的是 pascal?你還在用這個老古董?”
“哦,我聽說過,有一些老外在用,不過我們這還沒有人用呢?!?/code>

時過境遷,現(xiàn)在已經(jīng)有了很大變化。

2014 年初,我開始寫《零基礎(chǔ)學(xué) Python》系列,就得到了很多朋友的支持,而且吸引了不少學(xué)習(xí) Python 的朋友,特別是在我的那個 QQ 群里面,集中了不少學(xué)習(xí)者和愛好者,當然也有高手深藏不露。

獲得我發(fā)布的有關(guān) Python 信息途徑:

  1. 加入 QQ 群,里面可以跟很多人交流。QQ 群:Code Craft:26913719
  2. 關(guān)注我的新浪微博,名稱是:老齊 Py。地址:http://weibo.com/qiwsir
  3. 到 github.com 上直接 follow 我,名稱是:qiwsir。地址:https://github.com/qiwsir
  4. 經(jīng)常關(guān)注我的網(wǎng)站:www.itdiffer.com

特別是今年(2015 年)一開始,在 QQ 群(26913719)里面,就有朋友說,他在上海找工作,看到好多公司都要有 Python 開發(fā)經(jīng)驗的。也有朋友委托我推薦 Python 程序員的。

從我自己的經(jīng)歷中也感受到,不僅僅是國外,國內(nèi)也如此,用 Python 的領(lǐng)域越來越多,找 Pythoner 的公司和機構(gòu)也越來越多了。

所以,學(xué)習(xí) Python,挺好。

需要什么基礎(chǔ)嗎

這是很多初學(xué)者都會問的一個問題。誠然,在計算機方面的基礎(chǔ)越好,對學(xué)習(xí)任何一門新的編程語言,都是更有利的。如果,你在編程語言的學(xué)習(xí)上,屬于零基礎(chǔ),也不用擔(dān)心,不管用哪門語言作為學(xué)習(xí)編程的入門語言,總要有一個開始吧。

就我個人來看,Python 是比較適合作為學(xué)習(xí)編程的入門語言的。換言之,就是不用擔(dān)心自己的所謂基礎(chǔ)問題。

看我這個課程的標題,就是強調(diào)“零基礎(chǔ)”的。

不僅我這么認為,美國有不少高校也這么認為,紛紛用 Python 作為編程專業(yè)甚至是非編程專業(yè)的大學(xué)生入門語言。

我跟很多計算機專業(yè)的大學(xué)生朋友聊過,他們比較痛苦的就是大學(xué)用 C 語言作為編程入門語言,學(xué)了這個,才知道自己不適合學(xué)習(xí)編程,因為直到課程完畢,甚至考試通過了(一般是師生一塊糊里糊涂地通過),對編程這件事也還是霧里看花的那種感覺。當然,或許你不在此列,一來你有天分,二來你下了功夫。

總而言之,學(xué)習(xí) Python,你不用擔(dān)心基礎(chǔ)問題。特別是在這里學(xué)習(xí),我的后續(xù)內(nèi)容,就是從零基礎(chǔ)開始的

優(yōu)雅的 Python

Python 號稱是優(yōu)雅的。但是這種說法仁者見仁智者見智。比如經(jīng)常聽到大師們說“數(shù)學(xué)美”,是不是誰都能體驗到呢?不見得吧。

所以,是不是優(yōu)雅,是不是簡單,是不是明確,只有“誰用誰知道”。

不過,我特別喜歡下面這句話:人生苦短,我用 Python。意思就是說,Python 能夠提高開發(fā)效率,讓你短暫的人生能夠除了工作之外,還有更多的時間休息、娛樂或者別的什么。

或許有的人不相信,那么也只有“誰用誰知道了”。

跟別的語言比較

“如果你遇到的問題無法用 Python 解決,這個問題也不能用別的語言解決?!薄@是我向一些徘徊在 Python 之外的人常說的,是不是有點夸張了呢?

最近看到了一篇文章,《如果編程語言是女人》,我轉(zhuǎn)載如下(考慮到篇幅所限,所了適當刪改,非刪減請通過連接查看原文):

http://wiki.jikexueyuan.com/project/start-learning-python/images/01.jpg" alt="" />

PHP 是你的豆蔻年華的心上人,她是情竇初開的你今年夏天傻乎乎的追求的目標。玩一玩可以,但千萬不要投入過深,因為這個女孩有嚴重的問題。

Ruby 是腳本家族中一個非常漂亮的孩子。第一眼看她,你的心魄就會被她的美麗攝走。她還很有有趣。起初她看起來有點慢,不怎么穩(wěn)定,但近些年來她已經(jīng)成熟了很多。

Python 是 Ruby 的一個更懂事的姐姐。她優(yōu)雅,新潮,成熟。她也許太過優(yōu)秀。很多小伙都會說“嘿,兄弟,你怎么可能不愛上 Python 呢!?”。沒錯,你喜歡 Python。你把她當成了一個脾氣和浪漫都退燒了的 Ruby。

Java 是一個事業(yè)成功的女人。很多在她手下干過的人都感覺她的能力跟她的地位并不般配,她更多的是通過技巧打動了中層管理人員。你也許會認為她是很有智慧的人,你愿意跟隨她。但你要準備好在數(shù)年里不斷的聽到“你用錯了接口,你遺漏了一個分號”這樣的責(zé)備。

C++ 是 Java 的表姐。她在很多地方跟 Java 類似,不同的是她成長于一個天真的年代,不認為需要使用“保護措施”。當然,“保護措施”是指自動內(nèi)存管理。你以為我指的是什么?

C 是 C++ 的媽媽。對一些頭發(fā)花白的老程序員說起這個名稱,會讓他們眼睛一亮,產(chǎn)生無限回憶。

Objective C C 語言家族的另外一個成員。她加入了一個奇怪的教會,不愿意和任何教會之外的人約會。

雖然是娛樂,或許有爭議,權(quán)當參考吧。

The Zen of Python

這就是著名的《Python 之禪》。

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

感謝 Guido van Rossum

Guido van Rossum 是值得所有 Pythoner 感謝和尊重的,因為他發(fā)明了這個優(yōu)雅的編程語言。他發(fā)明 Python 的過程是那么讓人稱贊和驚嘆,顯示出牛人的風(fēng)采。

1989 年的圣誕節(jié)期間,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時間,決心開發(fā)一個新的腳本解釋程序,作為 ABC 語言的一種繼承。之所以選中 Python 作為程序的名字,是因為他是一個蒙提·派森的飛行馬戲團的愛好者。ABC 是由吉多參加設(shè)計的一種教學(xué)語言。就吉多本人看來,ABC 這種語言非常優(yōu)美和強大,是專門為非專業(yè)程序員設(shè)計的。但是 ABC 語言并沒有成功,究其原因,吉多認為是非開放造成的。吉多決心在 Python 中避免這一錯誤,并取得了非常好的效果,完美結(jié)合了 C 和其他一些語言。

這段故事的英文刊載在:https://www.python.org/doc/essays/foreword/

新版的設(shè)想

我寫《零基礎(chǔ)學(xué) Python(第二版)》,是承接第一版的,并在第一版基礎(chǔ)上,最出比較大量的改進,比如每個章節(jié)的標題,現(xiàn)在改為更為直接的描述,而不是用那種文藝范寫了,因為這樣不僅更明確,而且還能用于以后備查。

此外,我會繼續(xù)原有的大家認可的風(fēng)格,兼顧零基礎(chǔ)和后續(xù)的發(fā)展。特別是要在里面穿插如更多的項目例子。


總目錄   |   下節(jié):從小工到專家

上一篇:函數(shù)(2)