產(chǎn)品經(jīng)理的 Python 自學之路(一)

自學兩周搓侄,剛剛在踩過無數(shù)坑瞄桨,成功跑通了一個小爬蟲(在 linkedin 找到做過某項業(yè)務(wù)的產(chǎn)品經(jīng)理,并把他們的項目等信息寫入一個文件)之后讶踪,我想總結(jié)一下 Python 的學習芯侥。

Python 里最難的概念是什么?

這里的概念乳讥,我指的是構(gòu)成 Python 的基本概念柱查,是其他概念的基石,不包括諸如 “xx模塊”這樣的基于基石的概念云石。

Python 的基石概念唉工,我認為有變量、列表/字典汹忠、函數(shù)淋硝、類。(有些可能也是所有編程語言的基本概念宽菜,不了解其他語言谣膳,大神輕拍,下同)

這些概念是由淺入深的層級關(guān)系:

有關(guān)形狀(空間)

  • 一級概念:變量
  • 二級概念:列表铅乡、字典(變量及變量間聯(lián)系)

有關(guān)輸入輸出(時間)

  • 三級概念:函數(shù)
  • 四級概念:類(函數(shù)及函數(shù)間聯(lián)系(時空概念))

時間和空間我等下再提继谚。先解釋下層級。列表阵幸、字典是在變量基礎(chǔ)之上花履,可以描述變量之間關(guān)系的概念芽世,因而比變量高一個層級

我剛學這一塊時就遇到了一個難點诡壁,隨便舉個例子:

假如有個列表

names=['monica','rachel','joey',ross']

要給每個名字加上 ‘hot ’济瓢,變成例如 ‘hot monica’,最簡單怎么改呢欢峰?我一開始總想用 for name in names 去改葬荷,雖然也可以(生成新變量,刪掉原列表的內(nèi)容纽帖,再把新變量加到原列表中)宠漩,但是更方便的是:

for i in range(len(names)) :
??names[I]='hot '+names[i]

所以,列表比變量高級的地方在于懊直,它還能表達變量間的關(guān)系扒吁。列表的“位置”概念(或者說屬性)就是一種變量間關(guān)系。而 for name in names 實際上還是從變量的思維在考慮室囊。

函數(shù)比前面兩個概念難的地方是在于它是一個時間概念雕崩。先有輸入后有輸出。而列表融撞、字典只有組合盼铁、位置這樣的空間概念。所以函數(shù)會更難尝偎。(但我們高中都學過可能不覺得難饶火。)關(guān)于時間和空間概念可以參考我的另外一篇文章《產(chǎn)品經(jīng)理的時空思維》

類:最難的基石概念

剛學類的時候致扯,覺得類是一個好東西肤寝,定義好了一系列通用方法,遇到類似場景傳個參數(shù)調(diào)用一下抖僵,就可以出結(jié)果鲤看。像個萬能模子。

但實際根本不是這么一回事耍群。

先看一個《Python編程:從入門到實踐》的例子:
現(xiàn)在要做一個簡單的問卷义桂,可以收集用戶輸入的答案。



已經(jīng)有了類 AnonymousSurvey 世吨,你要怎么用呢澡刹?


函數(shù)2、4是可以直接給到輸出的函數(shù)耘婚,但必須先定義 變量 question、response/responses陆赋。

question 是需要我們提供的參數(shù)沐祷,而 response/responses 需調(diào)用函數(shù)3嚷闭。

而調(diào)用函數(shù)3 需給到變量 new_response, 這是我們需要給到的參數(shù)。

所以這里的步驟是

  • 提供參數(shù) question 調(diào)用函數(shù)2赖临,得到輸出
  • 提供參數(shù) new_response -> 調(diào)用函數(shù)3胞锰,獲得變量 response/responses -> 調(diào)用函數(shù)4,得到輸出

所以并不是你在入口提供參數(shù) question兢榨、new_response, 你在出口坐等函數(shù)4的輸出就好了嗅榕。你需要參與制作提供給函數(shù)4的變量

我把函數(shù)2吵聪、4這樣的可以提供最終輸出的函數(shù)定義為“輸出函數(shù)”凌那,把函數(shù)1、3這樣的幕后工作者定義為“功能函數(shù)”吟逝,它們只有輔助功能帽蝶,參與制造用于輸出的關(guān)鍵變量,而不直接輸出块攒。把 question励稳、new_response 這樣需要我們提供的函數(shù)定義為“參數(shù)變量”,把 response/responses 這樣的在類里面的囱井,只承擔功能但無需提供的變量叫做“功能變量” 驹尼。

為了更清晰,羅列一下:

  • 參數(shù)變量:question庞呕,new_response
  • 功能變量: response/responses
  • 功能函數(shù):1新翎,3
  • 輸出函數(shù):2,4

我作為小白剛學習類時千扶,看到上面那個調(diào)查問卷的問題就傻眼了:這里的變量都可以直接拿來用么料祠?調(diào)用哪個函數(shù)呢?

但現(xiàn)在就會明白澎羞,功能變量可以直接用髓绽,但參數(shù)變量需要定義。類中的函數(shù)妆绞,不是全給你直接輸出的顺呕,有些是用來創(chuàng)造功能變量的。

所以類并不是一個模子括饶,你丟進去原料株茶,出來成品。類也不是一個超市图焰,羅列了很多工具启盛,你挑選合適的工具,得到需要的輸出。類是給到你原料和工具僵闯,你用一部分工具和原料創(chuàng)造一些關(guān)鍵配件卧抗,然后再用剩下的工具和你創(chuàng)造的配件來制造成品。

類經(jīng)歷了這么一個過程:
參數(shù)變量鳖粟,功能函數(shù) -> 功能變量 -> 輸出函數(shù)

所以它不僅有函數(shù)和函數(shù)關(guān)系這樣的空間概念社裆,還包括上面的時間關(guān)系,因而我覺得是最難的概念向图。

掌握了基石概念泳秀,就能學會 Python 嗎? Too naive…在自己寫代碼時還會有各種問題榄攀,很重要的一點是由于編程語言思維和我們?nèi)粘=鉀Q問題的思維是不一樣的嗜傅。留待下一篇講。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末航攒,一起剝皮案震驚了整個濱河市磺陡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漠畜,老刑警劉巖币他,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異憔狞,居然都是意外死亡蝴悉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門瘾敢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拍冠,“玉大人,你說我怎么就攤上這事簇抵∏於牛” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵碟摆,是天一觀的道長晃财。 經(jīng)常有香客問我,道長典蜕,這世上最難降的妖魔是什么断盛? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮愉舔,結(jié)果婚禮上钢猛,老公的妹妹穿的比我還像新娘。我一直安慰自己轩缤,他們只是感情好命迈,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布贩绕。 她就那樣靜靜地躺著,像睡著了一般躺翻。 火紅的嫁衣襯著肌膚如雪丧叽。 梳的紋絲不亂的頭發(fā)上卫玖,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天公你,我揣著相機與錄音,去河邊找鬼假瞬。 笑死陕靠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的脱茉。 我是一名探鬼主播剪芥,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼琴许!你這毒婦竟也來了税肪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤榜田,失蹤者是張志新(化名)和其女友劉穎益兄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箭券,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡净捅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辩块。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛔六。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖废亭,靈堂內(nèi)的尸體忽然破棺而出国章,到底是詐尸還是另有隱情,我是刑警寧澤豆村,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布液兽,位于F島的核電站,受9級特大地震影響你画,放射性物質(zhì)發(fā)生泄漏抵碟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一坏匪、第九天 我趴在偏房一處隱蔽的房頂上張望拟逮。 院中可真熱鬧,春花似錦适滓、人聲如沸敦迄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罚屋。三九已至苦囱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脾猛,已是汗流浹背撕彤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留猛拴,地道東北人羹铅。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像愉昆,于是被迫代替她去往敵國和親职员。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理跛溉,服務(wù)發(fā)現(xiàn)焊切,斷路器,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,926評論 6 13
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 3,629評論 0 7
  • 昨天早上芳室,習慣性的打開禁言群专肪,咦?竟然沒有打卡材料渤愁?再往上看到奕晴說今天是剽悍行動征程復盤階段的第一天牵祟,恍然驚醒,...
    想想就行了閱讀 387評論 0 1
  • 昨天的夢是一場密室冒險抖格,多狹窄的窗诺苹,我都輕易鉆過。多險的狀況雹拄,都在最后一刻化解收奔。 車停在恰好的位置,最好的時間滓玖,我...
    偏見小姐閱讀 136評論 0 0