Python 变量详解
变量是编程中存储数据的基本单元,相当于给数据贴标签。Python 变量具有动态类型特性(无需声明类型),使用前必须赋值。
核心概念
变量赋值
name = "Alice" # 字符串
age = 30 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
变量命名规则
包含字母、数字、下划线(不能以数字开头)
区分大小写:myVar ≠ myvar
禁止使用关键字(如 if, for, while)
推荐蛇形命名法:user_name(而非驼峰式 userNam
动态类型特性
x = 10 # x 是整数
print(x) # 输出: 10
x = "Hello" # x 变成字符串
print(x) # 输出: Hello
多重赋值技巧
# 同时赋值多个变量
a, b, c = 1, 2.5, "Python"
# 变量交换(无需临时变量)
x, y = 10, 20
x, y = y, x # 交换后 x=20, y=10
# 链式赋值
p = q = r = 100 # 三个变量指向同一值
变量类型与操作
数据类型 | 示例 | 特点 |
---|---|---|
整数 int | count = 100 | 支持大数计算 |
浮点数 float | pi = 3.14159 | 可能存在精度误差 |
字符串 str | text = "Hello" | 不可变序列 |
布尔 bool | flag = True | 值为 True/False |
列表 list | colors = ['红','绿','蓝'] | 可变有序集合 |
元组 tuple | point = (3, 5) | 不可变有序集合 |
字典 dict | user = {'name': 'Tom', 'age': 20} | 键值对集合 |
内存管理机制
a = [1, 2, 3]
b = a # b 和 a 指向同一内存地址
b.append(4)
print(a) # 输出: [1, 2, 3, 4](因为修改的是同一对象)
# 创建独立副本
c = a[:] # 或 a.copy()
c.append(5)
print(a) # 输出: [1, 2, 3, 4](不变)
print(c) # 输出: [1, 2, 3, 4, 5]
作用域规则
作用域类型 | 定义位置 | 访问范围 |
---|---|---|
局部变量 | 函数内部 | 仅在函数内有效 |
全局变量 | 函数外部 | 整个文件有效 |
nonlocal | 嵌套函数中 | 在闭包函数间共享 |
global_var = "全局"
def test_scope():
local_var = "局部"
global global_var # 声明使用全局变量
global_var = "已修改"
test_scope()
print(global_var) # 输出: 已修改
# print(local_var) # 报错:未定义
最佳实践
描述性命名
# 差
a = 10
# 佳
student_count = 10
2.避免保留字
# 错误
class = "A101"
# 正确
class_name = "A101"
3.常量用大写(约定)
MAX_USERS = 1000
PI = 3.1415926
4.删除无用变量
temp_data = [ ... ]
del temp_data # 释放内存
示例:变量类型转换
# 显式类型转换
num_str = "123"
num_int = int(num_str) # 字符串→整数
price = 19.99
price_str = str(price) # 浮点数→字符串
flag = 1
flag_bool = bool(flag) # 整数→布尔值(0=False, 非0=True)
常见错误
未定义先使用
print(undefined_var) # NameError
2.拼写错误
user_name = "Bob"
print(user_nmae) # NameError
3.修改不可变对象
text = "Python"
text[0] = "J" # TypeError