2018-04-10

Python 語言精要

一、前言

1. 數(shù)據(jù)處理從結構化和非結構化數(shù)據(jù)處理的角度介紹

2. 能夠處理大數(shù)據(jù)集的高性能數(shù)組計算工具

二赤嚼、Python語言概要

1. 是一種解釋型語言齐邦,通過“一次執(zhí)行一條語句”

2. 退出:exit()和Ctrl-D

3. 在終端上運行.py的文件

4. 科學計算程序員趨向于使用IPython(一種加強對交互式Python解釋器)

5. IPython:通過使用%run,會在同意進程中執(zhí)行指定文件代碼,是編號的風格(如:In[2]:)

三旬昭、基礎知識

1. 語言語義

2. 縮進,而不是大括號:建議4個空格作為默認縮進量

3. Python語句能不以分號結束菌湃,不建議一行放多個語句

4. 萬物皆對象:對象模型一致性

5. 注釋:#

6. 函數(shù)調用和對象方法調用:圓括號问拘,0個或者多個參數(shù)

7. 變量和按引用傳遞,變量傳遞的是引用惧所,指向同一個對象的兩個引用

8. 動態(tài)引用:對象引用沒有與之關聯(lián)的類型信息骤坐,變量其實就是對象在待定命名空間中的名稱而已,保存在它自己內部下愈。

9. 強類型: 所有對象都有個特定的類型纽绍,轉換需要很明顯的情況:insinstance,檢查類型

10. 對象既有屬性又有方法:obj.attribute_name 和getattr查詢

11. “鴨子”類型:一般不會關心對象的類型势似,只是關心有沒有某些方法或行為(例如具有迭代器協(xié)議拌夏,知道可以迭代)

12. 引入模塊(module):一個含有函數(shù)和變量定義以及其他.py文件的引入,import some_module ;from some_module import f,g,PI; import some_module as sm ;from some_module import PI as pi……

13. 大部分Python對象是可變的履因,對象或者值是可以修改障簿,而字符串和元組是不可變的,需要注重不可變(有強烈的副作用)

14. 標量類型:None/str/Unicode/float/bool/int/long

15. 3/2=1.5(保留一個浮點數(shù))3//2=1(圓整)

16. 字符串既可以’’也可以“”栅迄,換行字符串用三重引號卷谈,字符串是不可變,要修改必須創(chuàng)建新的霞篡。

17. 字符串是一串字符序列世蔗,可以當做序列處理,字符串可以相加朗兵。%表示帶插入值的目標

18. None不是一個保留關鍵字污淋,他只是NoneType的一個實例而已

19. datetime/date/time;strtime用于將datetime格式化為字符串余掖,字符串可以通過strptime函數(shù)解析為datetime

20. for循環(huán)用于對集合(比如列表或元組)或迭代器進行迭代:for value in collection/continue/break

21. pass是“空操作”語句

22. 異常處理: try/except/finally

23. range/xrange(非常長的范圍)寸爆,產(chǎn)生一組間隔平均的整數(shù)

24. 三元表達式:value=true-expr if condition else false-expr

數(shù)據(jù)結構和序列:

1, 元組

? 一維的盐欺,定長的不可變的Python對象序列赁豆,復雜的元組用圓括號,元組組成的元組

? 調用tuple冗美,任何序列或迭代器都可以轉換成元組魔种。

? 訪問元組通過[],訪問

? 元組雖不可變粉洼,但是可以:tup[1].append(3)

? 可以用+連接元組节预,可以*4叶摄,相當于生成4個連接在一起的元組副本

? 元組拆包:元組型變量表達式賦值:tup=(4,5,6);a,b,c=tup;b=5

? 元組拆包可以交換變量名,可以用于元組或類別組成的序列進行迭代

? 元組:Count:指定值出現(xiàn)的次數(shù)

2安拟, 列表

? 列表是變長的蛤吓,可修改的,用[]或list函數(shù)表示:b_list[1]=‘peekaboo’糠赦,將b的列表第二個元素修改成制定字符串

? append:將元素添加到列表的末尾会傲;insert將元素插入到列表的制定的位置;pop:移除指定位置元素拙泽;remove:按值刪除元素淌山;in:判斷是否含有某個值

? +:合并列表,extend:添加多個元素

? sort(可選關鍵字:key=len):排序

? bisect:二分查找以及對有序列表的插入奔滑。bisect.bisect:找出新元素插入的位置并保持原有序列的有序性艾岂,bisect.insort:插入到具體的位置

? 切片:通過索引運算符[start:stop],[:5],[::2],[::-1],[-4:],[-6:-2]

? 內置的序列函數(shù)

1) enumerate:跟蹤當前項的索引朋其。for i王浴,value in emumerate(colleciton)

2) sorted:可以返回一個新的有序列表

3) zip:將對各序列(列表,元組等)中的元素‘配對’梅猿,產(chǎn)生一個新的元組列表

4) reversed:逆序

3氓辣, 字典(dict):最重要的內置數(shù)據(jù)結構-hashmap/associative array

? 大小可變的鍵值對集,其中鍵(key)和(value)都是python對象袱蚓,字典的方式:使用{}并用冒號分割鍵和值钞啸。例子:{'a’:’some value’,’b’:[1,2,3,4]}

? 使用del關鍵字或pop方法可以刪除值

? 使用keys和values方法分布獲取鍵和值的列表:d1.keys()

? Update方法:一個字典可以被合并到另一個字典去

? 從序列類型創(chuàng)建字典:maping=dict(zip(range(5)),reversed(range(5)))

? 默認值:value=some_dict.get(key,defalult_value); by_letter.setdefalult(letter,[]).append(word);內置collections模塊中有defalutdict類,

? 字典鍵的有效類型喇潘,鍵必須是不可變對象体斩,如標量類型(整數(shù)、浮點數(shù)颖低、字符串)或元組(元組中的所有對象也必須是不可變的)絮吵,術語:可哈希性(hashability),hash函數(shù)

4, 集合

? 集合是由唯一元素組成的無序集忱屑,創(chuàng)建用set函數(shù)或用大括號包起來的集合字面量

? 集合支持各種數(shù)學集合預算蹬敲,如并、交莺戒、差以及對稱差等

5伴嗡, 列表、集合以及字典的推倒式

? 列表推導式:[expr for val in collection if condition]

? 字典的推導式:dict_comp={key-expr:value-expr for value in collection if condition}

? 集合推導式:set_comp={ expr for val in collection if condition }

? 嵌套列表推導式:多個for循環(huán)在一行

6从铲, 函數(shù)

? 重要的代碼組織和復用手段瘪校,def關鍵字聲明的,并使用return關鍵字返回

? 位置參數(shù)(positional)和關鍵字參數(shù)(keyword):通常制定默認值或可選參數(shù)食店,位于位置參數(shù)之后

? 局部命名空間渣淤,函數(shù)都是某個作用域的局部函數(shù)赏寇,可以返回多個值吉嫩。函數(shù)也是對象

? 匿名函數(shù)(lambda)

? 閉包:返回函數(shù)的函數(shù)价认,在一個外函數(shù)中定義了一個內函數(shù),內函數(shù)里運用了外函數(shù)的臨時變量自娩,并且外函數(shù)的返回值是內函數(shù)的引用用踩,外函數(shù)的臨時變量將來會在內函數(shù)中用到,這個臨時變量綁定給了內部函數(shù)忙迁。

? Func(a,b,c,d=some,e=value)脐彩,函數(shù)接收的是一個元組args和一個字典kwargs,內部:a,b,c=args;d=kwargs.get(‘d’,d_default_value); e=kwargs.get(‘e’,e_default_value)

? Currying姊扔,部分參數(shù)應用:從現(xiàn)有函數(shù)派生出新函數(shù)的技術

? 生成器:能以一種一致的方式對序列進行迭代(比如列表中的對象或文件中的行)是它重要的特定惠奸,這是通過一種叫做迭代器協(xié)議(iterator protocol它是一種使對象可迭代的通用方式)的方式實現(xiàn)。要創(chuàng)建生成器恰梢,只需將函數(shù)中的return替換為yeild.

? 生成器表達式:也有一個類似于列表佛南、字典、集合推導式的東西嵌言,其創(chuàng)建方式為嗅回,把列表推導式兩端的方括號改成圓括號:gen=(x**2 for x in xrange(100))

? Itertools模塊:其中有許多常見數(shù)據(jù)算法的生成器。例如:groupby可以接受任何序列和一個函數(shù)摧茴,根據(jù)函數(shù)的返回值對序列中的連續(xù)元素進行分組绵载。

7, 文件和操作系統(tǒng)

? Pandas.read.csv讀取數(shù)據(jù)文件

? Open

? Write/writelines

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末苛白,一起剝皮案震驚了整個濱河市娃豹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌购裙,老刑警劉巖懂版,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缓窜,居然都是意外死亡定续,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門禾锤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來私股,“玉大人,你說我怎么就攤上這事恩掷〕ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵黄娘,是天一觀的道長峭状。 經(jīng)常有香客問我克滴,道長,這世上最難降的妖魔是什么优床? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任劝赔,我火速辦了婚禮,結果婚禮上胆敞,老公的妹妹穿的比我還像新娘着帽。我一直安慰自己,他們只是感情好移层,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布仍翰。 她就那樣靜靜地躺著,像睡著了一般观话。 火紅的嫁衣襯著肌膚如雪予借。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天频蛔,我揣著相機與錄音灵迫,去河邊找鬼。 笑死帽驯,一個胖子當著我的面吹牛龟再,可吹牛的內容都是我干的。 我是一名探鬼主播尼变,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼利凑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嫌术?” 一聲冷哼從身側響起哀澈,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎度气,沒想到半個月后割按,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡磷籍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年适荣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片院领。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡弛矛,死狀恐怖,靈堂內的尸體忽然破棺而出比然,到底是詐尸還是另有隱情丈氓,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站万俗,受9級特大地震影響湾笛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜闰歪,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一嚎研、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧课竣,春花似錦嘉赎、人聲如沸置媳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拇囊。三九已至迂曲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寥袭,已是汗流浹背路捧。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留传黄,地道東北人杰扫。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像膘掰,于是被迫代替她去往敵國和親章姓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容

  • 第六章:數(shù)字 第七章:序列识埋,列表凡伊,元組 1.序列 序列類型有著相同的訪問模式:它的每一個元素可以通過指定一個偏移量...
    m風滿樓閱讀 873評論 0 2
  • 〇、前言 本文共108張圖窒舟,流量黨請慎重系忙! 歷時1個半月,我把自己學習Python基礎知識的框架詳細梳理了一遍惠豺。 ...
    Raxxie閱讀 18,918評論 17 410
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,367評論 0 5
  • 半夏 不久前種下的水稻已發(fā)了芽 去年你栽下的玫瑰開過了花 那么美 你卻遠在天涯 我不在的時候 你還好嗎银还? 有沒有受...
    阿贏閱讀 170評論 0 1
  • 今天晨讀分享的書為《慢決策:如何在極速時代掌握慢思考的力量》。 每個人都有或大或小的拖延癥洁墙,而我們也一直為此煩惱蛹疯。...
    走散的五號香奈兒閱讀 269評論 0 5