Python中的常量和变量分别是怎么定义的?
在Python中,常量和变量的定义方式和使用场景有所不同,下面我用通俗易懂的方式解释它们的区别和定义方法:
1. 变量(Variable)
定义:可以随时修改的值
特点:像便签贴,可以随时更换内容
命名规范:通常用小写字母和下划线(如 user_name
)
# 定义变量(直接赋值即可)
age = 25 # 整数变量
price = 9.99 # 浮点数变量
name = "张三" # 字符串变量
is_active = True # 布尔变量# 变量可以随时修改
age = 26 # 修改age的值
print(age) # 输出: 26
2. 常量(Constant)
定义:程序运行期间不应被修改的值
特点:像刻在石头上的字,约定俗成不可变
命名规范:全大写字母和下划线(如 MAX_SPEED
)
# 定义常量(Python没有真正的常量,靠约定)
PI = 3.1415926 # 数学常数
MAX_USERS = 100 # 最大用户数
DEFAULT_TIMEOUT = 30 # 默认超时时间# 技术上可以修改(但不应该这样做!)
PI = 3.14 # 能运行,但违反约定
关键区别对比表
特性 | 变量 | 常量 |
---|---|---|
可变性 | 可以随时修改 | 不应该修改(约定俗成) |
命名风格 | lower_case_with_underscores | UPPER_CASE_WITH_UNDERSCORES |
内存占用 | 可动态变化 | 固定不变 |
典型用途 | 存储临时数据 | 存储配置参数/固定值 |
3. 高级用法
(1)用枚举实现真常量(推荐)
from enum import Enumclass Constants(Enum):PI = 3.1415926MAX_USERS = 100# 使用方式(真正不可修改)
print(Constants.PI.value) # 输出: 3.1415926
Constants.PI = 3.14 # 报错: AttributeError
(2)用元组模拟常量
CONSTANTS = (3.1415926, 100, 30)
PI, MAX_USERS, TIMEOUT = CONSTANTS# 尝试修改会报错
CONSTANTS[0] = 3.14 # TypeError: 'tuple' object does not support item assignment
4. 使用建议
- 变量:用于需要频繁变化的数据(如循环计数器、用户输入)
- 常量:用于不会改变的值(如数学常数、配置参数)
- 重要原则:
- 变量名要有描述性(如
student_count
比n
好) - 常量名全大写并放在文件顶部(方便管理和修改)
- 变量名要有描述性(如
一句话总结
- 变量:会变的量(如
count = 0
) - 常量:不变的量(如
PI = 3.14
,靠命名约定实现) - 需要严格常量时用 枚举 或 元组