重要補充

Python SELF TW
等級 5 , 課堂 6
開放

6.1 變數是引用

在 Python 裡,變數是對物件的引用,而不是變數本身。這意味著,當你在 Python 中創建變數時,你只是創造了一個指向記憶體中物件的引用。

這個語言特性的影響在於操作變數時的關鍵,尤其是將物件傳遞給函數或將其賦值給其他變數時。

當你創建變數並賦值時,Python 會在記憶體中為這個值創建一個物件,並讓變數指向這個物件。如果你將一個變數賦值給另一個變數, 新的變數將會指向與原變數同樣的物件。這意味著,如果物件是可變的,通過一個變數進行的修改,會影響到另一個變數。

示例:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # 顯示: [1, 2, 3, 4]

我們在 b 中添加了數字 4,但它也被添加到了 a 的列表中,因為兩個變數其實只是對物件列表 [1, 2, 3] 的引用。

6.2 不可變的物件

在 Python 中,物件分為 可變不可變。可變的物件,如列表和字典,可以在創建後進行修改。

不可變的物件,例如字串和數字,在創建後不能被修改。當你處理不可變物件時,變更會導致創建一個新物件:

賦值永遠不會改變物件:


a = 5  # a 儲存對物件 5 的引用
b = a  # b 也儲存對物件 5 的引用
b = 3  # 現在 b 儲存對物件 3 的引用
print(a)  # 顯示: 5               

可以透過調用函數來改變物件:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # 顯示: [1, 2, 3, 4]                              

但有些不可變物件有它們自己的函數。這些函數不會改變原物件,而是返回一個包含新結果的新物件:


name = "Alex"
print(name)  # 顯示: Alex
name2 = name.lower() 
print(name2)  # 顯示: alex               

字串是不可變物件。雖然字串有方法,但這些方法從不改變字串物件,而是總是返回一個新的字串(新物件)。舊的物件保持不變。

6.3 處理 None 類型

在 Python 中,有一種特殊的數據類型表示沒有值——None。它用於表示空變數或作為沒有返回值的函數的返回值。理解 None 對於管理程序行為非常重要,尤其是在條件語句和數據處理的背景下。

None 的基本使用

NoneNoneType 類別的唯一實例。它用於指示變數無值。在條件中, None 被評估為假(False)。


a = None
if a:
    print("a is True")
else:
    print("a is None or False")

與 None 的比較

應使用 is 操作符來檢查變數是否為 None,而不是 ==。操作符 is 檢查的是身份,而不是值的相等性。


a = None
if a is None:
    print("a is None")
else:
    print("a has value")

None 在函數中

None 常用於不需要顯式返回值的函數。如果一個函數沒有返回值,它會隱式地返回 None


def func():
    print("This function returns None")

result = func()
print(result)  # 顯示: None

None 和列表

None 可以用在列表、元組或其他集合中,以指示某個位置沒有元素。


my_list = [1, None, 3]
print(my_list)  # 顯示: [1, None, 3]
1
Опрос
類型轉換,  5 уровень,  6 лекция
недоступен
類型轉換
類型轉換
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION