什麼是模塊? 將模塊視為代碼庫。模塊是一個包含一組函數的文件,您想要在應用程式中包含這些函數。 創建一個模塊 要創建一個模塊,只需將要包含在其中的代碼保存在擴展名為 .py 的文件中: 示例:將以下代碼保存在名為 mymodule.py 的文件中: def greeting(name): print ...
4 變數
為了正常運行,Python程式需要變數和運算符等基本組件。包括變數和運算符在內的這些元素對於程式員新手來說很容易理解和應用,使他們能夠開發出創建複雜軟體所需的演算法。
本章涉及到了第8章函數的內容,如不能理解,可學習函數後再溫習。
4.1 變數簡介
變數是在Python程式中存儲和處理數據的一種方式。它們允許用戶和軟體與數據交互。沒有數據,軟體應用程式就毫無用處,對最終用戶也沒有任何作用。
變數在Python中用於將數據存儲在特定的電腦記憶體位置,允許軟體上傳或下載數據。變數的概念最早出現在代數學中,自誕生以來一直是高級編程語言的基本組成部分。
例如,在數學公式2x + 3y中,變數x和y可以賦值,然後用來改變公式的輸出。在編程中,具有不變值的變數被稱為常量。通過使用變數,您可以通過提供字面值來修改程式的輸出。變數是可以替換的,而不應該被替換的值在編程中通常被稱為常量。
sample = "My first example"
print(sample)
sample = "My second example"
print(sample)
4.2 變數命名
變數名只能包含數字、字母字元和下劃線。例如"sample1"可以用作變數名,而"$sample1"則不能,因為它以不支持的符號 $開頭。
Python程式員不能用數字作為變數名的開頭。例如,"sample1 "是一種有效的變數命名格式,而 "1sample "則不是。
在Python中,使用中文作為變數名是被允許的,但並不被廣泛建議。官方的Python編碼規範(PEP 8)建議變數名使用英文單詞,以提高代碼的可讀性和可維護性。以下是一些關於變數命名的考慮因素:
-
可讀性:使用英文變數名可以使代碼更易讀和理解。大多數 Python 程式員使用英文變數名,這樣可以讓他人更容易理解你的代碼,並降低溝通和協作的難度。
-
代碼共用和社區:Python 社區中的大多數代碼和資源都使用英文變數名,這意味著在使用中文變數名時,你可能會在共用代碼、博客文章、文檔和問題解答方面遇到一些困難。
-
跨平臺和工具支持:一些編輯器、集成開發環境(IDE)和開發工具對中文變數名的支持可能有限,可能會導致一些顯示或處理問題。
儘管如此,有時在特定的情況下,使用中文變數名可能會更符合特定的應用場景或需求。例如,當你需要與中文文檔、中文領域專業術語或特定業務邏輯對應時,使用中文變數名可能更具描述性。
最重要的是保持一致性和可讀性。如果你決定在你的代碼中使用中文變數名,請確保在整個代碼庫中保持一致,並與團隊成員達成一致。
>>> 變數 = "hello"
>>> print(變數)
hello
參考資料
- 軟體測試精品書籍文檔下載持續更新 https://github.com/china-testing/python-testing-examples 請點贊,謝謝!
- 本文涉及的python測試開發庫 謝謝點贊! https://github.com/china-testing/python_cn_resouce
- python精品書籍下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品書籍下載 https://www.cnblogs.com/testing-/p/17438558.html
4.3 變數的記憶體地址
在Python中,可以使用內置函數id()來獲取變數的記憶體地址。該函數返回表示對象記憶體地址的整數。
>>> x = 42
>>> id(x)
1724559656464
對於不可變類型的變數(如整數、字元串等),Python在遵循"同一值具有相同的記憶體地址"的原則下,會對相同的不可變值共用記憶體。這意味著對於相同的不可變值,它們的記憶體地址可能是相同的。而對於可變類型的變數(如列表、字典等),每個對象都有自己獨立的記憶體地址。
以下是一個示例,演示了相同的不可變值具有相同的記憶體地址:
>>> x = 42
>>> y = 42
>>> id(x)
1724559656464
>>> id(y)
1724559656464
上述代碼中,x和y都被賦值為相同的整數值42,因此它們具有相同的記憶體地址。
需要註意的是,不應該依賴於變數的記憶體地址來進行比較或判斷相等性。應該使用==運算符來比較變數的值,而不是比較記憶體地址。
4.4 局部變數和全局變數
在Python中,變數的作用域分為局部變數和全局變數。
局部變數是在函數內部定義的變數,只在函數內部有效。它們的作用域僅限於函數內部的代碼塊。當函數執行完畢後,局部變數將被銷毀,不能在函數外部訪問。
# This is an example of a local variable within a function
def my_sample():
x = "This is a sentence"
print(x)
mysample()
在上述示例中,變數x是在函數my_sample(內部定義的局部變數。它只在函數內部有效,當函數執行完畢後,變數x將被銷毀。
全局變數可用於整個程式。
# Let's create a global variable
x = "This is a sentence"
def function1():
print(x)
def function2():
print(x)
function1()
function2()
在函數內部修改全局變數時,如果沒有使用global關鍵字聲明,Python會將其視為局部變數。因此,在修改全局變數之前,需要使用global關鍵字明確告訴Python該變數是全局變數。
x = 42 # 全局變數
def my_function():
global x # 聲明x為全局變數
x = 43 # 修改全局變數的值
print(x)
my_function()
print(x) # 輸出修改後的全局變數的值
執行結果:
43
43
使用全局變數時,需要謹慎考慮,因為濫用全局變數可能導致代碼的可讀性和可維護性下降。以下是一些適合使用全局變數的情況:
- 共用數據:如果多個函數或模塊需要訪問和修改相同的數據,可以使用全局變數來共用數據。這樣可以避免傳遞參數或使用返回值來傳遞數據。
- 全局配置:在程式中需要設置全局配置參數時,可以使用全局變數來存儲這些參數。這樣可以方便地在不同的函數或模塊中訪問和修改配置值。
- 緩存數據:如果需要在多個函數或模塊中緩存某些計算結果或數據,可以使用全局變數來存儲緩存數據,以便後續的函數調用可以直接使用。這樣可以提高程式的性能。
然而,應該避免濫用全局變數,因為全局變數可能導致以下問題:
- 命名衝突:如果過多地使用全局變數,可能會導致變數名衝突,使代碼難以理解和維護。
- 難以追蹤:全局變數的值可以在程式的任何地方被修改,這可能使代碼難以追蹤和調試。
- 依賴關係:函數之間過度依賴全局變數可能導致代碼的耦合性增加,使代碼難以重構和測試。
如果有必要使用全局變數,請確保在使用前進行適當的設計和規劃,並遵循良好的編碼實踐。使用全局變數時,應該註意變數的命名,避免與局部變數或其他全局變數發生衝突。
釘釘或微信號: pythontesting 微信公眾號:pythontesting