python精進之路1---基礎資料型別
python精進之路1---基本資料型別
python的基本資料型別如上圖,重點需要掌握字串、列表和字典。
一、int、float型別
int主要是用於整數型別計算,float主要用於小數。
int型別有個bit_length的方法。它用於返回二進位制表示是的位數。
二、 bool型別
bool值就兩個,True和False,bool值本身沒什麼多講的,主要是bool值和各種其他資料型別的轉換以及配合邏輯運算子的使用。
int-->bool:非0轉換化為True,0轉換為False。
str-->bool:空字串轉換為False,其他的轉換為True。注意引號內如果哪怕只是一個空格也不是空字元。
列表、元祖和字典都和字串一樣,當為空的時候轉換為False,不為空轉換為True。
三、str型別
字串是不可變型別,主要有兩大方面需要注意,第一個是字串索引和切片,第二個就是操作字串的各種方法。
1) 字串索引與切片
字串其實也可以理解為字元陣列,它的索引值也是從0開始的,所以和切片操作返回的值都是複製生成一個新的字串,原來字串
不會改變,永遠記住字串的不可變,沒有修改字串這一說法。切片有個顧頭不顧尾的特性,具體的看下面程式碼:
2) 字串的操作方法
字串的操作方法很多,儘量多的掌握,永遠記住操作字串返回的都是一個新的字串,具體各種方法看下面程式碼:
四、list型別
列表是可變的資料型別,所以對它的大部分操作都是修改原列表,這與字串的操作要有區分。
1)列表的基本操作:
增: append、extend、insert
刪: pop、remove、del、clear
改:
直接按照索引賦值修改:
切片修改:
2)一些公共方法
len():返回列表的長度
count():給定字元返回字元的個數
index():給定字元返回字元的索引值
sort():預設升序排序
reverse():反轉
注意一個小知識點:
當列表使用sort進行排序的時候,如果列表裡面的字串都是英文字母開頭,那麼它們是通過字串第一個字母ASCII碼
的數值大小來排序的。
五、tuple型別
tuple又稱為只讀列表。可迴圈查詢,也可切片。但不能修改子元素。
1)tuple操作
元祖裡面的子元素是不能修改的,但是這些子元素如果是可變的資料型別:例如列表、字典。
那麼這些子元素裡面的元素是可以修改的,可以形象的說元祖的兒子不能改變,但孫子輩可能可以改變。
2)元祖注意點
元祖裡面只有一個元素的時候,一定要在元素後面加一個逗號!!!這個逗號的學問大著,如果不加逗號,它就不是元祖型別,
而是裡面這個元素的型別,例如(1)就是整型。對於字典和列表裡面只有一個元素的時候逗號加不加都無所謂。
六、dict型別
字典的鍵key必須是不可變資料型別,值value可以是任意型別。
1)字典的基本操作
增:
刪:
改:
查:
通過get查詢如果鍵不存在不會報錯,而直接利用鍵值查詢會報錯。
七、集合
它本身是可變的資料型別。但裡面存的元素必須是不可變的資料型別。
集合裡面的元素是無序的。
集合裡面的元素不允許重複。
可以通過set函式建立集合,也可以像字典一樣用{}來建立
1)集合的基本操作:
增:
刪:
pop隨機刪除
clear:清空後不會返回{},而是返回set(),為了和空字典區分。
查:for迴圈遍歷
2)集合的複雜操作
兩個集合交集:
兩個集合並集:
交集取反:
差集:一個集合相對於另一個集合獨有的
子集和超集
補充知識:
一、join方法:
通過指定字元將可迭代物件連線起來。
join函式的引數必須是可迭代物件,不能使用整數。
當引數是列表、元祖、字典時,子元素只能是字串。
當引數是字典時,只會取出鍵進行拼接。
二、range方法
range第三個引數表示步長,它可以是負數,但不能寫0,不寫預設為1。