Python數據分析答疑3:字典,函數

8.9 第三課 函數

作業:

作業1 字典的值可以是字典本身, 以提供更多信息,例如:europe = { 'spain': { 'capital':'madrid', 'population':46.77 },

'france': { 'capital':'paris', 'population':66.03 },

'germany': { 'capital':'berlin', 'population':80.62 },

'norway': { 'capital':'oslo', 'population':5.084 } }

1 打印法國首都

2 加入意大利(italy)的首都(roma)和人口(population 59.83)

作業2 找出兩個整數48、78的最小公倍數

作業3 貸款月供計算器,具體要求參見圖片(圖3-1)

圖3-1



作業區及討論區 Q&A:

目錄:

1,代碼運行問題

2,jupyter使用

3,代碼理解:range

4,代碼理解:max, min

5,代碼運行出錯

6,代碼運行優化:統計大篇文檔詞頻

7,代碼運行出錯

8,學習信心

9,代碼運行問題

10,代碼運行出錯

11,代碼理解:啟動python解釋

12,代碼運行問題:嵌套,None

13,jupyter使用

14,jupyter使用

15,代碼運行:優先級

16,代碼運行出錯:沒有輸出

17,代碼運行出錯:沒有輸出

18,代碼運行出錯

19,代碼運行出錯

20,資料包:快速找到需要的數據


圖3-2

Q 1 :請問為何“the”分1和6呢?第二段只得出6?(圖3-2)

A:三引號是三個單引號''',你這個題里,函數把單引號當做第一個和最后一個單詞的一部分了。所以輸出結果是錯的。


Q 2 :為什么我的jupyter notebook點擊launch后右下角有藍色滾動條在動,可是過一會后啥也沒打開?

A:可以嘗試用命令行啟動試試,在anaconda prompt 中輸入 jupyter notebook


圖3-3

Q 3 :上圖(圖3-3)是lesson2第34條記錄,請問range也是一種數據類型嗎?謝謝指教

A:對的,是一種特殊數據類型,非基本的數據類型,提供的操作方式和列表基本沒有差別,大家記住這點可以了。


圖3-4

Q 4 :請問在上圖(圖3-4)中,第一組命令為何沒有把最大、最小值分別顯示出來?只有第二組是正確的方式嗎?

A:用print函數可以換行輸出多個結果,而其它只是輸出最后一個。


圖3-5

Q 5 : 圖3-5,換成“|”怎么結算就運算錯了呢?

A:運算符優先級的問題,|的優先級要高于<,所以會出問題。加上括號就行了。


Q 6 :求教大篇文檔如何統計詞頻?

課程里是就一個句子進行了詞頻統計,找出最大最小。笑來老師應該是就很大的文檔進行詞頻統計,請問如何實現?是不是把文檔導入jupyter?

A:需要先把文件內容讀取到指定變量中,如text變量,下面的操作就和老師上課的操作步驟一樣了,進行詞頻分析。

如想了解python文件操作,可查看:https://www.w3cschool.cn/python/python-files-io.html


圖3-6

Q 7 :求教,代碼如圖(圖3-6),執行之后結果一直出不來,可是仔細看代碼沒有錯呀!

A:出現這種情況的原因很多,如電腦長期鎖屏、執行過死循環等等。不過重啟一下(jupyter 的kernel 頁面菜單上有個kernel ,上面有restart選項)就好了,restart是神技。


Q 8 :我剛才把第三課的回放又看了一遍,從頭到尾,我的唯一感觸就是看不懂。從哪開始看不懂的呢?就從while循環,開始看不懂的。本身就還沒有理解while的含義,老師已經開始執行了一大串函數了,我也是一片懵逼。

我感覺學習Python與其他編程不一樣,Python中可能對不僅僅包含了編程的理念,這中間也包含了對數學的一種理解。如果數學理解能力差的同學,比如我,可能就完全跟不上老師的進度。

只知道敲了一大串代碼,然后結果就出來了,但是完全不曉得是咋回事。又談何學習。

比如演示中,有一段過程是找最大公約數,我是反復看了三遍,愣是沒看懂每行代碼代表啥意思。我知道可能很多人看一遍就看的明明白白的,但是我確實是沒看懂。

從最大公約數這一段往后,我完全是看的云里霧里,根本沒有心思看下去,因為完全看不懂,只知道老師的代碼不停的敲,其實啥也看不懂。

我不知道是我個人哪個環節出了問題了? 我看了一下,有很多人已經把作業的月供做了出來,我不知道有多少人是獨立做出來的。反正我是無處下筆。不要說敲代碼了,就是讓我用x、y解應用題方式的方法,去求解,我都做不出來。我是不是,不適合老師的課程。

還是我沒有找到自己的方法,可是方法又去哪找呢?

A:首先、專項去看,靜下心來。我們要有拆解每個知識點的能力,各項擊破。比如說循環不懂,而且涉及到最小公約數,那我們就先把最小公約數看明白,再看循環。我們要考慮大部分同學情況,所以約數課上不做講解。一定要學會集中精神,謹慎顧此失彼。尤其對初學者,知識點比較多,看這個問題,想另一個問題,最后兩個問題都無法解決,會產生心理恐慌。

第二、學習是需要循序漸進,對于基礎薄弱的同學會產生知識跳躍的感覺。畢竟這門課程是從0基礎到機器學習入門,在這個課時設定下是無法避免的。

第三、我們后面會盡量出些試題,已循環漸進的方式給大家提供些指引。

第四、關于基礎好,那也是別人之前在這個方向投入過努力,而我們沒有花過這個時間,就需要在這段時間投入更多。

第五,能否成功在自己。不妨告訴大家,助教學編程時從一個完全不懂web編程到學會只花了不到2月的時間,涉及很多知識點,遇到不懂就看書,書看不懂就抄書,抄書有助于靜心,過兩年就年薪20k了。后來學習數據分析、從來沒接觸數據分析的人花了不到一個月時間看完了《利用Python進行數據分析》這本書,每天從下班到晚上至少12點,每天自學至少4個小時。不過此時有了好的編程水平,學起來比較快。

最后,值錢的東西不付出努力就獲得就不值錢了,畢竟天上不會掉餡餅。


圖3-7

Q 9 : 為什么有的時候,shift+enter之后沒有運行程序,而是移到下一行去了么?比如上圖(圖3-7)的代碼,第二行輸入find_gsp(18,20)之后,shift+enter結果跳到下一行了,沒有顯示結果。哪位同學或者是老師如果知道麻煩告知,謝謝。

A:這種情況多數是要死循環導致的,出現死循環之后,記得要重啟一下kernel. 執行菜單下的kernel=>restart。不重啟修改或者刪除都是沒用的,依然會卡住。


Q 10 :出現了 ‘find_gcd’ is not defined,怎么辦?

A:發現not defined這種錯誤,首先確認一下定義這個變量單元格代碼是否執行過了。[ ] 表示單元格沒有執行。修改過單元格的代碼也要記得重新執行下。


Q 11 :請問下面這句話的理解:

> 如果把上面的自定義函數保存為caculate.py文件里了,就可以在該文件當前目錄下啟動python解釋器,用from caculate import find_gcd來導入函數,注意caculate是文件名,而且不需要加.py擴展名。

這句話講的“在當前目錄下啟動python解釋器”是什么意思?怎樣操作呢?

A:啟動python解釋器,其實就是啟動一個環境,操作層面來講就是在指定的目錄下啟動python命令。jupyter notebook下的文件只要和py文件在一個目錄下,也可采用同樣方式導入。


圖3-8

Q 12 :關于第二節的案例(詞頻)有兩個問題。見上圖(圖3-8)。

A:a1: 括號套括號的形式是沒問題的,但要記住,括號應該成對出現。

a2: None 和0的區別是,None 定義的是空集,并不是0,雖然在這道題的環境下用0也可以,但是如果有負數出現就不行了,會影響判斷。

所以我理解是,None 是比較通用的方式,試用范圍廣,用它也比較省事,不會給后續帶來麻煩。


Q 13 :請問怎樣寫出在GitHub里分享的教案,既有markdown格式,又有代碼,而且代碼前面的In [1]:也能顯示出來,這是什么格式的?、

A:jupyter notebook就是這種格式的。

Q 14 :點擊JupyterNotebook 下面的launch 沒反應是怎么回事?

A:配置一下工作目錄 或者使用命令行打開


Q 15 :請問在Python上進行復雜運算,可以有比較簡潔的輸入方法嗎?還有在Python上的運算符,有運行的先后順序嗎?計算貸款時,計算的代碼顯得很復雜,可讀性很差

A:可以化簡一下,運算是有優先級的 不確定優先級的情況下可以使用括號明確優先級


圖3-9

Q 16 : 如圖(圖3-9),運行沒有結果

A:死循環了,用Kernel中的restart重啟一下。


圖3-10

Q 17 :如圖(圖3-10),運行沒有結果。

A:定義函數需要調用的


圖3-11

Q 18 : 作業3(圖3-11)不知道哪錯了。求教

A:因為少了float的右括號



圖3-12

Q 19 :計算部分的代碼都是對的,但是輸入 0 無法結束報告,這啥情況?

A:應該是 if money == int(0):


Q 20 :怎么快速找到自己想要的數據,求推薦!

A:一般網上有一些開放的數據集,國外的較多,比如

著名的UCI機器學習數據集 【 http://archive.ics.uci.edu/ml/ 】

Kaggle 競賽數據 【? https://www.kaggle.com/datasets 】

或者政府提供的開放數據,比如

美國 DATA.GOV 【 https://www.data.gov 】

紐約 NYC OpenData 【 http://opendata.cityofnewyork.us? 】

The Humanitarian Data Exchange? 【 https://data.humdata.org 】

國內的比較少,比如聚數力 【 http://dataju.cn/Dataju/web/dataDescriptionAndDataset 】

還有收費的數據堂

如果要獲取網頁數據,可以自己編寫爬蟲工具來采集

有些網站提供數據的API接口,比如微博,但是數量和頻率非常有限制

想要獲取理想的數據本來就不是一件容易的事情,特別是在數據已被當成寶藏的今天

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容