Python學習筆記:編碼、變量、控制語句與函數

2023-08-22 16:19:08 來源:碼農與軟件時代

一、編碼方式


(資料圖)

計算機只認識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)

標簽:

上一篇:如何共享文件給虛擬機中的Linux系統
下一篇:最后一頁