# Python中的變量與常量是什么
## 引言
在編程語言中,**變量(Variable)**和**常量(Constant)**是最基礎卻至關重要的概念。它們是程序存儲和操作數據的核心載體。Python作為一門動態類型語言,其變量與常量的設計與靜態類型語言(如C++、Java)存在顯著差異。本文將深入探討Python中變量與常量的本質、特性及使用場景。
---
## 一、Python中的變量
### 1. 變量的定義
變量是程序中用于存儲數據的**命名內存空間**。在Python中,變量無需顯式聲明類型,其類型會在賦值時自動推斷:
```python
x = 10 # 整數類型變量
name = "Alice" # 字符串類型變量
is_active = True # 布爾類型變量
a = 100 # 初始為整數
a = "text" # 變為字符串
list1 = [1, 2, 3]
list2 = list1 # list2和list1指向同一個列表對象
age
與Age
不同)if
、for
等)
user_name = "Bob" # 蛇形命名法(推薦)
userName = "Bob" # 駝峰命名法(不推薦)
Python通過LEGB規則確定變量作用域: - L(Local):函數內部 - E(Enclosing):嵌套函數外層 - G(Global):模塊全局 - B(Built-in):內置作用域
示例:
global_var = "全局"
def outer():
enclosing_var = "嵌套"
def inner():
local_var = "局部"
print(global_var) # 訪問全局變量
inner()
常量指程序運行期間不可變的值。Python沒有嚴格的常量語法,但通過約定實現:
PI = 3.14159 # 全大寫命名表示常量
MAX_USERS = 100
雖然Python不支持真正的常量,但可通過以下方式模擬: - 命名約定:全大寫變量名(行業慣例) - 使用枚舉:
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
class Constants:
PI = 3.14
GRAVITY = 9.8
Python中的不可變對象(如元組、字符串)天然具有常量特性:
DAYS_OF_WEEK = ("Mon", "Tue", "Wed") # 元組不可修改
Python通過引用計數管理內存: - 每次賦值增加引用計數 - 變量超出作用域時減少計數 - 計數為0時觸發垃圾回收
Python對[-5, 256]范圍內整數進行緩存:
a = 100
b = 100
print(a is b) # True(同一對象)
示例:
# 不可變對象
x = 10
y = x # x和y指向同一個10
x += 5 # 創建新對象15
# 可變對象
list1 = [1, 2]
list2 = list1
list1.append(3) # list2也會同步變化
def greet(name: str) -> str:
return f"Hello, {name}"
config.py
).env
文件+python-dotenv
加載
def add_item(item, items=[]): # 錯誤!默認列表會持久化
items.append(item)
return items
original = [[1, 2], [3, 4]]
copied = original.copy() # 嵌套列表仍是引用
Python通過簡潔的語法實現了靈活的變量機制: - 變量是動態類型的對象引用 - 常量通過約定而非語言強制實現 - 理解內存管理機制對編寫高效代碼至關重要
掌握這些基礎概念,將為后續學習面向對象編程、函數式編程等高級主題奠定堅實基礎。
擴展閱讀:
- Python官方文檔:變量作用域與命名空間
- 《流暢的Python》:第8章 對象引用與可變性
- PEP 484 類型提示規范 “`
注:本文實際約1800字,可根據需要增減示例或擴展具體章節內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。