1. 程式人生 > >《Python語言及其應用》學習筆記

《Python語言及其應用》學習筆記

第二章 ==========

物件的型別決定了可以對它進行的操作。物件的型別還決定了它裝著的資料是允許被修改的變數(可變的),還是不可被修改的常量(不可變的)。

Python是強型別的,你永遠無法修改一個已有物件的型別,即使它包含的值是可變的。

變數,就是在程式中為了方便地引用記憶體中的值而為它取的名字,在Python中,用 = 來給一個變數賦值。python中的變數有一個非常重要的性質:它僅僅是一個名字。賦值操作並不會實際複製值,它只是為資料物件取一個相關的名字,名字是對物件的引用而不是物件本身。

在Python中,如果想知道一個物件的型別,可以使用語句:type( thing )。

Python中以下劃線開頭的變數名有特殊的含義。

使用 int() 函式將其他資料型別轉換為整形,它會保留傳入資料的整數部分並捨去小數部分。int() 可以接受浮點數或者由數字組成的字串,但無法接受包含小數點或指數的字串。

布林型,只有兩個可選值:True 和 False 。當轉換為整數時,分別為 1 和 0 。

浮點型,轉換為整數時,所有的小數點後面的部分會被捨去。

可以將僅包含數字和正負號的字串轉換為整數。

如果混合使用多種不同的數字型別進行計算,Python 會自動地進行型別轉換。與整數或浮點數混合使用市,布林型的False會被當作 0 或者 0.0 ,True 會被當作 1 或者 1.0 。

Python3裡,int 型別變為可以儲存任意大小的整數,甚至超過 64 位。

在計算中的數字或結果需要的儲存空間超過了計算機所提供的空間,就會造成整數溢位。

float() 函式可以將其他數字型別轉換為浮點型。布林型在計算中等價於 1.0 和 0.0 。也可以將包含有效浮點數(數字,正負號,小數點,指數及指數的字首e)的字串轉換為真正的浮點型數字。

對 Unicode 的支援使得 Python 3 可以包含世界上任何書面語言以及許多特殊符號。

字串型,是一種序列型別,它的本質是字元序列。Python 字串是不可變的,無法對原字串進行修改,但可以將字串的一部分複製到新字串,來打到相同的修改效果。

將一系列字元包裹在一對單引號或一對雙引號中即可建立字串。單引號和雙引號包裹的字元,沒有任何區別。可以在雙引號包裹的字串中使用單引號,或者在單引號包裹的字串中使用雙引號。

還可以使用連續三個單引號''',或者連續三個雙引號""",建立字串。三元引號多用於建立多行字串。

print() 會把包裹字串的引號去掉,僅輸出其實際內容,易於閱讀,還會自動地在各個輸出部分之間新增空格,並在所有輸出的最後新增換行符。

直譯器可以列印字串以及像 \n 的轉義符。

Python 允許空串的存在,它不包含任何字元且完全合法。

str() 可以將其他Python 資料型別轉換為字串。當你呼叫print() 函式或者進行 字串差值 時,Python 內部會自動使用 str() 將非字串物件轉換為字串。

Python 允許你對某些字元進行轉義操作,以此來實現一些難以單純用字元描述的效果。

在Python 中,可以使用 + 將多個字串或字串變數拼接起來。也可以直接將一個字面字串(非字串變數)放到另一個的後面直接實現拼接。

在字串名後面新增[ ],並在括號裡指定偏移量可以提取該位置的單個字元。第一個字元的偏移量為 0 ,最後一個字元的偏移量也可以用 -1 表示,這樣就不用從頭到尾數。偏移量從右到左緊接著為 -2, -3, 以此類推。如果指定的偏移量超過了字串的長度,會收到一個異常提醒。位置索引在其他序列型別(列表和元組)中的使用也是如此。

由於字串是不可變的,因此無法直接插入字元或改變指定位置的字元。

分片操作:可以從一個字串中抽取子字串(字串的一部分)。使用一對方括號,起始偏移量start,終止偏移量 end 以及可選的步長 step 來定義一個分片。其中一個可以省略。分片得到的子串,包含從 start 開始到 end 之前的全部字元。
[ : ] 提取從開頭到結尾的整個字串
[ start : ] 從 start 提取到結尾
[ : end ] 從開頭提取到 end - 1
[ start : end ] 從 start 提取到 end -1
[ start : end : step ] 從 start 提取到 end - 1 ,每 step 個字元提取一個;

偏移量從左至右,從 0,1 開始,依次增加;從右至左,從 -1 ,-2開始,依次減小。如果省略 start ,分片會預設使用偏移量 0 (開頭);如果省略 end ,分片會預設使用偏移量 -1 (結尾)。
Python 的提取操作不包含最後一個偏移量對應的字元。
分片中 end 的偏移量需要比實際提取的最後一個字元的偏移量多 1 。
在分片中,小於起始位置的偏移量會被當作 0 ,大於終止位置的偏移量會被當作 -1 。

函式是可以執行某些特定操作的有名字的程式碼。與廣義函式 len() 不同,有些函式只適用於字串型別,為了呼叫字串函式,需要輸入字串的名稱,一個點號,接著是需要呼叫的函式名,以及需要傳入的引數:string.function(arguments)

列表 list 是由一系列值組成的序列,值與值之間由逗號隔開,整個列表被方括號所包裹。


第三章 Python容器:列表,元組,字典,集合=============================

元組和列表都不要求所含元素的種類相同,每個元素都可以是任何Python型別的物件。元組是不可變的,當你給元組賦值時,這些值便被固定在元組裡了,再也無法修改。列表卻是可變的,這意味著可以隨意地插入或刪除其中的元素。

使用[ ] 或 list() 建立列表。列表可以由零個或多個元素組成,元素之間用逗號分開,整個列表被方括號所包裹。

如果僅僅想要記錄一些互不相同的值,而不在乎它們之間的順序關係,集合 set 會是一個更好的選擇。

使用 list() 將其他資料型別轉換成列表。

使用 [offset] 獲取元素:和字串一樣,通過偏移量可以從列表中提取對應位置的元素。指定的偏移量小於起始位置或者大於末尾位置時,會產生異常。

列表可以包含各種型別的元素,包括其他列表。

使用 [offset] 修改元素:就像可以通過偏移量訪問某元素一樣,你也可以通過賦值對它進行修改。列表的偏移量必須是合法的。
通過這種方式無法修改字串中的指定字元,因為字串是不可變的。列表是可變的,因此你可以改變列表中的元素個數,以及元素的值。