
一、編碼方式
(資料圖)
計算機只認識0和1二進制串。
英文字符和二進制串的對應關系,構建為ASCII碼,共128個字符,使用一個字節的二進制串。
不同國家有不同的字符,并且字符可能多達數萬(漢字多達10萬)。一個字節最多表達256字符,為表達不同國家的字符,需要使用多個字節。
為了將所有字符都能唯一表達,構建Unicode(一種所有字符的編碼)。
Unicode約定了所有字符和二進制串的對應關系。
但不同的字符所需要的二進制串長度是不一樣的,如果按照最長二進制串存儲,則會浪費存儲空間。
UTF-8是Unicode的一種實現方式,采用變長的編碼方式,可以使用1~4個字節表示一個符號。
規則如下:
(1)可使用1個字節二進制串表達的字符:第1位為0,后7位是這個字符的Unicode編碼。
(2)使用n個字節二進制串表達的字符:第1個字節的前n位都設為1,第n +
1位設為0,后面字節的前2位一律設為10。剩余的二進制位為Unicode編碼。
Python2默認的編碼方式是ASCII碼。
ASCII碼不支持中文,如需寫中文注釋,則要在文件的開頭加入# -*coding: UTF-8 -*或者# coding=utf-8。
Python3中Python源碼文件都將以UTF-8編碼作為默認編碼,所有的字符串都是Unicode字符串。
二、變量
Python數據類型的分類:
不可變類型是指一旦創建后,其值不能被修改。如重新賦值或修改值,實質上是創建了一個新的對象并將變量指向該新對象,原有的對象并沒有改變。
可變類型是指可以修改其值的對象。如修改元素、添加或刪除元素,會直接操作原有對象的內部數據。
底層實現原理:對于不可變類型,Python會為每個對象分配內存,并將對象的值存儲在該內存中。當我們進行不可變類型的操作時,Python會創建一個新的對象并將其值存儲在新的內存中,然后將變量指向新的對象。
對于可變類型,Python會為每個對象分配內存,并將對象的引用存儲在內存中。當我們進行可變類型的操作時,Python會直接修改對象內部的數據,而不會創建新的對象。
理解變量類型的不可變和可變特性,有助于我們更好地理解Python中的數據處理和內存管理。
三、控制語句
Python提供for、while與else的組合能力,用來識別循環是否正常執行完畢,有無跳出(break)現象。
for i in [1, 2]: passelse: print("for循環結束,無跳出現象")
四、函數
函數的參數分為4種類型:位置參數、關鍵字參數、默認參數、不定長參數。
(1)位置參數:調用函數時,傳入實參的數量和位置都必須和函數的定義保持一致。
(2)關鍵字參數:調用函數時,使用形式參數的名字來指定輸入的參數值。
### 函數定義 def getAgeInfo(name, age): "打印任何傳入的字符串" print("Name: ", name) print("Age ", age)### 函數調用 getAgeInfo(age=50, "xiaoxiao") ### age = 50,為關鍵字參數
注:關鍵字參數必須在位置參數之后。
(3)默認參數:定義函數時,給形式參數指定一個默認值。
### 函數定義 def getAgeInfo(name, age=30): "打印任何傳入的字符串" print("Name: ", name) print("Age ", age)
(4)不定長參數:函數定義時,使用 *parameter 表示任意個非關鍵字參數,使用**parameter表示任意個關鍵字參數。
### 函數定義,參數以元組的形式訪問def getStuName(*stuname): print("n學生名單為:") for sn in stuname: print(sn) ### 函數定義,參數以字典的形式訪問def getStuName(**stuname): for snkey, snvalue in stuname.items(): print(snkey + " " + snvalue)
標簽: