Do you want to be a Python expert ? 前言

https://github.com/ltoddy/Python-useful

Do you want to be a Python expert ?

很多時(shí)候,有些人在介紹 Python 的時(shí)候會(huì)提到 The Zen of Python :

>>> import this
The Zen of Python, by Tim Peters

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!

但是我不知道你需要多久才能做到 The Zen of Python 中說(shuō)的.

Python 真的優(yōu)雅嗎, Python 真的簡(jiǎn)潔嗎, 這是當(dāng)然, 不然 The Zen of Python 怎么會(huì)添加到標(biāo)準(zhǔn)庫(kù)中去.

不過(guò)在此之前,你需要更加的學(xué)習(xí)(畢竟不是一上來(lái)就什么都會(huì)的), 明白 Python 的風(fēng)格, 或者說(shuō)需要自己不斷鍛煉, 讓自己寫出來(lái)的 Python 代碼更加的 pythonic.

在這里, 我不會(huì)講述類似:

a, b = b, a

l = [x * 2 for x in range(10)]

類似這種你本就應(yīng)該在初學(xué) Python 就應(yīng)該熟練掌握的東西.

我更想講述的是:

  • data model class (dunder methods, protocol).

  • metaclass (Base/Derive class)

  • Decorators

  • Generators

  • Context Managers

因?yàn)橐陨系囊恍ゝeature確實(shí)可以讓你的代碼更加pythonic, 而且也是非常重要的.


A problem

在很早很早之前,曾經(jīng)看到一個(gè)群友問(wèn)了一個(gè)問(wèn)題:

有兩個(gè)list, 比如: one = [1, 2, 3], other = [2, 3, 4]

他想要得到這樣的結(jié)果,把這兩個(gè)相加得到: [3, 5, 7], 也就是對(duì)應(yīng)下標(biāo)的元素相加.

我當(dāng)時(shí)想都沒(méi)想就回了一句: return [one[i] + other[i] for i in range(len())]

看上去不錯(cuò),是嗎?

當(dāng)然不是. 如果這兩個(gè)list不相等怎么辦?

然后我又給了一個(gè)方案: return list(map(lambda x, y: x + y, one, other))

不過(guò), 這樣又不好了, 如果一個(gè)list長(zhǎng),一個(gè)list短,這個(gè)樣子寫,長(zhǎng)的那個(gè)list多出來(lái)的數(shù)據(jù)就會(huì)被丟掉了.

所以我又思考了一下, 重新給出了最后結(jié)果: return list(starmap(lambda x, y: x + y, zip_longest(one, ther, fillvalue=0)))

你能想到我所說(shuō)的最后一種方案嗎?


What is Python ?

Python 到底是一種什么樣的語(yǔ)言, 說(shuō)真的, 很難給 Python 下一個(gè)定義,因?yàn)樗姆妒綄?shí)在太多:

  • 面向?qū)ο?/p>

  • 過(guò)程式

  • 面向協(xié)議

  • 原型

  • 也支持函數(shù)式的feature

Python is an interpreted, interactive, object-oriented programming language. (來(lái)自Python docs)

如果你真正理解這些 feature 是什么, 那么非常顯然的是, 來(lái)告訴我: why and when you use it. (畢竟我更傾向于實(shí)用, 我不是學(xué)院派)


當(dāng)然,在最后的時(shí)候,我也會(huì)告訴一些學(xué)習(xí)途徑, 比如看什么書可以最快的提高你的能力, 也比如你應(yīng)該從哪些地方去獲取你需要掌握的知識(shí).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末株扛,一起剝皮案震驚了整個(gè)濱河市血淌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖入蛆,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮母,死亡現(xiàn)場(chǎng)離奇詭異忆家,居然都是意外死亡庵芭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門涯曲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)野哭,“玉大人,你說(shuō)我怎么就攤上這事幻件〔η” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵绰沥,是天一觀的道長(zhǎng)篱蝇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)徽曲,這世上最難降的妖魔是什么零截? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮秃臣,結(jié)果婚禮上涧衙,老公的妹妹穿的比我還像新娘。我一直安慰自己奥此,他們只是感情好弧哎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著稚虎,像睡著了一般撤嫩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蠢终,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天序攘,我揣著相機(jī)與錄音鸭限,去河邊找鬼。 笑死两踏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兜喻。 我是一名探鬼主播梦染,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼朴皆!你這毒婦竟也來(lái)了帕识?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤遂铡,失蹤者是張志新(化名)和其女友劉穎肮疗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體扒接,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伪货,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钾怔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碱呼。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宗侦,靈堂內(nèi)的尸體忽然破棺而出愚臀,到底是詐尸還是另有隱情,我是刑警寧澤矾利,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布姑裂,位于F島的核電站论熙,受9級(jí)特大地震影響匆赃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亏钩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一剑肯、第九天 我趴在偏房一處隱蔽的房頂上張望捧毛。 院中可真熱鬧,春花似錦让网、人聲如沸呀忧。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)而账。三九已至,卻和暖如春因篇,著一層夾襖步出監(jiān)牢的瞬間泞辐,已是汗流浹背笔横。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咐吼,地道東北人吹缔。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像锯茄,于是被迫代替她去往敵國(guó)和親厢塘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,579評(píng)論 1 118
  • 又是一年秋葉黃肌幽, 暮云低落閉天光晚碾。 遙望雁字回時(shí)路, 玉釵...
    劍靈_閱讀 170評(píng)論 0 1
  • 為什么要建新的分舵 很多伙伴喂急,在不同場(chǎng)合格嘁,不同時(shí)間,都問(wèn)過(guò)我同樣一個(gè)問(wèn)題: ”為什么要建新的分舵廊移?“ 我第一次聽(tīng)到...
    拆書家孟鋼閱讀 1,211評(píng)論 6 5
  • 前幾天看到一個(gè)朋友發(fā)表一條說(shuō)說(shuō):‘晚點(diǎn)遇見(jiàn)吧画机,等你足夠成熟冶伞,等我足夠溫柔〔绞希”讓我十分感慨响禽,兩人是否可以走的長(zhǎng)久,時(shí)...
    守咪喵喵閱讀 761評(píng)論 2 12
  • 不知道從什么時(shí)候開(kāi)始荚醒,我們已過(guò)了那個(gè)叛逆的年紀(jì)芋类。坐在微微搖晃的的小船上,水潺潺地從船低劃過(guò)界阁。一時(shí)間侯繁,平靜的河面被這...
    勿忘初心_db8c閱讀 216評(píng)論 0 0