第四章迎卤、介紹Python對象類型

為什么使用內(nèi)置類型

內(nèi)置對象使程序更容易編寫。

內(nèi)置對象是擴展的組件玷坠。

內(nèi)置對象往往比定制的數(shù)據(jù)結(jié)構(gòu)更有效率蜗搔。

內(nèi)置對象是語言的標(biāo)準(zhǔn)的一部分。

Python的核心數(shù)據(jù)類型:

數(shù)字八堡、字符串樟凄、列表、字典兄渺、元祖缝龄、文件、集合溶耘、其他類型二拐、編程單元類型、與實現(xiàn)相關(guān)的類型凳兵。

數(shù)字

Python的核心對象集合包括常規(guī)的類型:整數(shù)(沒有小數(shù)部分的數(shù)字)百新、浮點數(shù)(概括地講,就是后邊有小數(shù)部分的數(shù)字)以及更為少見的類型(有虛部的復(fù)數(shù)庐扫、固定精度的十進制數(shù)饭望、帶分子和分母的有理分數(shù)以及集合等)。

math模塊包括更高級的數(shù)學(xué)工具形庭,如函數(shù)铅辞,而random模塊可以作為隨機數(shù)字的生成器和隨機選擇器。

字符串

就像任意字符的集合一樣萨醒,字符串是用來記錄文本信息的斟珊。

1、序列的操作:

①富纸、作為序列囤踩,字符串支持假設(shè)其中各個元素包含位置順序的操作。

②晓褪、在Python中堵漱,索引是按照從最前面的偏移量進行編碼的,也就是從0開始涣仿,第一項索引為0勤庐,第二項索引為1示惊,依此類推。

③愉镰、在Python中米罚,我們能夠反向索引,從最后一個開始(正向索引是從左邊開始計算丈探,反向索引是從右邊開始計算)阔拳。

④、除了簡單地從位置進行索引类嗤,序列也支持一種所謂分片(slice)的操作,這是一種一步就能夠提取整個分片(slice)的方法辨宠。

⑤遗锣、作為一個序列,字符串也支持使用加號進行合并(將兩個字符串合成為一個新的字符串)嗤形,或者重復(fù)(通過再重復(fù)一次創(chuàng)建一個新的字符串)精偿。

2、不可變性:

字符串在Python中具有不可變性——在創(chuàng)建后不能就地改變赋兵。

在Python中的每一個對象都可以分為不可變性或者可變性笔咽。在核心類型中,數(shù)字霹期、字符串和元組是不可變的叶组;列表和字典不是這樣(它們可以完全自由的改變)。

3历造、類型特定的方法:

①甩十、字符串的find方法是一個基本的子字符串查找的操作(它將返回一個傳入子字符串的偏移量,或者沒有找到的情況下返回-1)吭产,而字符串的replace方法將會對全局進行搜索和替換侣监。

②、其他的方法還能夠?qū)崿F(xiàn)通過分隔符將字符串拆分為子字符串(作為一種解析的簡單形式)臣淤,大小寫變換橄霉,測試字符串的內(nèi)容(數(shù)字、字母或其他)邑蒋,去掉字符串后的空格字符姓蜂。

③、字符串還支持一個叫作格式化的高級替換操作寺董,可以以一個表達式的形式(最初的)和一個字符串方法調(diào)用(Python2.6和Python3.0中新引入的)形式使用覆糟。

4、需求幫助:

①遮咖、dir函數(shù)簡單的給出了方法的名稱滩字。

②、要查詢它們是做什么的,你可以將其傳遞給help函數(shù)麦箍。

5漓藕、編寫字符串的其他方法:

①、反斜線轉(zhuǎn)義序列表示特殊的字符挟裂。

②享钞、Python允許字符串包括在單引號或雙引號中(它們代表這相同的東西)。

③诀蓉、Python也支持原始(raw)字符串常量栗竖,即去掉反斜線轉(zhuǎn)義機制(這樣的字符串常量是以字母“r”開頭的)。

6渠啤、匹配模式:

字符串對象的方法能夠支持基于模式的文本處理狐肢。

列表

列表是一個任意類型的對象的位置相關(guān)的有序集合,它沒有固定的大小沥曹。

1份名、序列操作:

由于列表是序列的一種,列表支持所有的我們對字符串所討論過的序列操作妓美。

2僵腺、類型特定的操作:

列表沒有固定類型的約束。

①壶栋、列表的append方法擴充了列表的大小并在列表的尾部拆入一項辰如;pop方法(或者等效的del語句)移除給定偏移量的一項,從而讓列表減小贵试。

②丧没、其他的列表方法可以在任意位置插入(insert)元素,按照值移除(remove)元素等锡移。

③呕童、列表sort方法,默認按照升序?qū)α斜磉M行排序淆珊,而reverse對列表進行翻轉(zhuǎn)夺饲。

3、邊界檢查:

盡管列表沒有固定的大小施符,Python仍不允許引用不存在的元素往声。

4、嵌套:

Python核心數(shù)據(jù)類型的一個優(yōu)秀的特性就是它們支持任意的嵌套戳吝。

5浩销、列表解析:

處理序列的操作和列表的方法中,Python還包括了一個更高級的操作听哭,稱作列表解析表達式(list comprehension expression)慢洋,從而提供了一種處理像矩陣這種結(jié)構(gòu)的強大工具塘雳。

列表解析源自集合的概念。

字典

Python中的字典是完全不同的東西:它們不是序列普筹,而是一種映射(mapping)败明。映射是一個其他對象的集合,但是它們是通過鍵而不是相對位置來存儲的太防。

1妻顶、映射操作:

①、作為常量編寫時蜒车,字典編寫在大括號中讳嘱,并包含一系列的“鍵:值”對。

②酿愧、我們可以通過鍵對這個字典進行索引來讀取或改變鍵所關(guān)聯(lián)的值呢燥。

③、不同的創(chuàng)建字典的方法:開始一個空的字典寓娩,然后每次以一個鍵來填寫它。與列表中禁止邊界外的賦值不同呼渣,對一個新的字典的鍵賦值會創(chuàng)建該鍵棘伴。

2、重訪嵌套:

3屁置、鍵的排序:for循環(huán):

①焊夸、當(dāng)我們確實需要強調(diào)某種順序的時候,一個常用的解決辦法就是通過字典的keys方法收集一個鍵的列表蓝角,使用列表的sort方法進行排序阱穗,然后使用Python的for循環(huán)逐個進行顯示結(jié)果。

②使鹅、在最近版本的Python中揪阶,通過使用最新的sorted內(nèi)置函數(shù)可以一步完成。

4患朱、迭代和優(yōu)化:

5鲁僚、不存在的鍵:if測試:

元組

元組對象(tuple,發(fā)音為“toople”或“tuhple”)基本上就像一個不可改變的列表裁厅。

1冰沙、為什么要用元組:

元組在實際中往往并不像列表這樣常用,但是它的關(guān)鍵是不可變性执虹。

如果在程序中以列表的形式傳遞一個對象的集合拓挥,它可能在任何地方改變;如果使用元組的話袋励,則不能侥啤。

文件

文件對象是Python代碼對電腦上外部文件的主要接口当叭。

要創(chuàng)建一個文件對象,需調(diào)用內(nèi)置的open函數(shù)以字符串的形式傳遞給它一個外部的文件名以及一個處理模式的字符串愿棋。

1科展、其他文件類的工具:

open函數(shù)能夠?qū)崿F(xiàn)在Python中編寫的絕大多數(shù)文件處理。盡管這樣糠雨,對于更高級的任務(wù)才睹,Pyton還有額外的類文件工具:管道、先進先出隊列(FIFO)甘邀、套接字琅攘、通過鍵訪問文件、對象持久松邪、基于描述符的文件坞琴、關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫接口等。

其他核心類型

集合是唯一的不可變對象的無序集合逗抑。

十進制數(shù)(固定精度浮點數(shù))和分數(shù)(有一個分子和一個分母的有理數(shù))剧辐。

布爾值(預(yù)定義的True和False對象實際上是定制后以邏輯結(jié)果顯示的整數(shù)1和0)。

特殊的占位符對象None(它通常用來初始化名字和對象)邮府。

1荧关、如何破話代碼的靈活性:

內(nèi)置函數(shù)type返回的類型對象是賦給該類型的另一個對象的一個對象。

用戶定義的類

用抽象的術(shù)語來說褂傀,類定義了新的對象類型忍啤,擴展了核心類型。

剩余的內(nèi)容

只有我們目前所見到的那些對象類型才被認為是Python核心類型集合的一部分仙辟。其他Python中的類型有的是與程序執(zhí)行相關(guān)的對象(如函數(shù)同波、模塊、類和編譯過的代碼)叠国;有的是由導(dǎo)入的模塊函數(shù)實現(xiàn)的未檩,而不是語言語法。

本章小結(jié)

本章介紹了Python核心對象類型粟焊,以及可以對它們進行的一些操作讹挎。我們學(xué)習(xí)了一些能夠用于許多對象類型的一般操作(例如,索引和分片這樣的序列操作)吆玖,以及可以作為方法調(diào)用的特定類型操作(例如筒溃,字符串分隔和列表增加)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沾乘,一起剝皮案震驚了整個濱河市怜奖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翅阵,老刑警劉巖歪玲,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迁央,死亡現(xiàn)場離奇詭異,居然都是意外死亡滥崩,警方通過查閱死者的電腦和手機岖圈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钙皮,“玉大人蜂科,你說我怎么就攤上這事《烫酰” “怎么了导匣?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茸时。 經(jīng)常有香客問我贡定,道長,這世上最難降的妖魔是什么可都? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任缓待,我火速辦了婚禮,結(jié)果婚禮上渠牲,老公的妹妹穿的比我還像新娘旋炒。我一直安慰自己,他們只是感情好嘱兼,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贤徒,像睡著了一般芹壕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上接奈,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天踢涌,我揣著相機與錄音,去河邊找鬼序宦。 笑死睁壁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的互捌。 我是一名探鬼主播潘明,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秕噪!你這毒婦竟也來了钳降?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腌巾,失蹤者是張志新(化名)和其女友劉穎遂填,沒想到半個月后铲觉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吓坚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年撵幽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礁击。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盐杂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出客税,到底是詐尸還是另有隱情况褪,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布更耻,位于F島的核電站测垛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秧均。R本人自食惡果不足惜食侮,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望目胡。 院中可真熱鬧锯七,春花似錦、人聲如沸誉己。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巨双。三九已至噪猾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筑累,已是汗流浹背袱蜡。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慢宗,地道東北人坪蚁。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像镜沽,于是被迫代替她去往敵國和親敏晤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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