上一篇
Python变量与常量完全指南:从基础到实战应用 | Python编程教程
- Python
- 2025-07-30
- 263
Python变量与常量完全指南:从基础到实战应用
一、Python变量基础
变量是任何编程语言的核心概念,Python中的变量具有以下特点:
变量特性:
- 变量是存储数据的容器
- Python变量不需要声明类型(动态类型)
- 变量在使用前必须赋值
- 变量可以重新赋值,改变其值和类型
1.1 变量命名规则
Python变量命名遵循以下规则:
# 合法的变量命名示例
counter = 10
user_name = "Alice"
PI_VALUE = 3.14159
is_valid = True
totalAmount = 100.50
# 不合法的变量命名示例
# 2nd_place = "Silver" # 不能以数字开头
# user-name = "Bob" # 不能包含连字符
# class = "Python" # 不能使用关键字
最佳实践:
- 使用描述性的变量名(如
student_count
而非n
) - 小写字母加下划线(snake_case)是Python推荐的命名风格
- 避免使用单个字符(除了简单的循环计数器)
- 避免使用Python关键字和内置函数名
1.2 变量赋值
Python使用等号=
进行赋值操作:
# 基本赋值
x = 10
message = "Hello, Python!"
# 多重赋值
a, b, c = 5, 10, 15
# 链式赋值
x = y = z = 0
# 增量赋值
count = 5
count += 3 # 等同于 count = count + 3
二、Python变量类型
Python是动态类型语言,变量类型在赋值时确定:
# 整数
age = 25
print(type(age)) # <class 'int'>
# 浮点数
price = 19.99
print(type(price)) # <class 'float'>
# 字符串
name = "Alice"
print(type(name)) # <class 'str'>
# 布尔值
is_student = True
print(type(is_student)) # <class 'bool'>
# 列表
fruits = ["apple", "banana", "cherry"]
print(type(fruits)) # <class 'list'>
# 元组
coordinates = (10.5, 20.3)
print(type(coordinates)) # <class 'tuple'>
# 字典
person = {"name": "Bob", "age": 30}
print(type(person)) # <class 'dict'>
类型转换:
Python提供内置函数进行类型转换:
int()
- 转换为整数float()
- 转换为浮点数str()
- 转换为字符串bool()
- 转换为布尔值list()
- 转换为列表
三、Python常量详解
虽然Python没有内置的常量类型,但开发者通过约定实现常量:
3.1 常量定义规范
Python常量通常使用全大写字母加下划线命名:
# 常量定义示例
PI = 3.1415926535
MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30
API_KEY = "a1b2c3d4e5"
重要提示:
在Python中,常量只是约定而非强制约束。技术上仍然可以修改这些"常量",但这被认为是不好的实践。
3.2 创建真正的常量
如需创建真正不可变的常量,可以使用以下方法:
# 方法1:使用枚举
from enum import Enum
class Constants(Enum):
PI = 3.14159
GRAVITY = 9.8
# 访问常量
print(Constants.PI.value) # 3.14159
# 方法2:使用属性装饰器创建只读属性
class Config:
@property
def MAX_USERS(self):
return 100
config = Config()
print(config.MAX_USERS) # 100
# config.MAX_USERS = 200 # 会引发AttributeError
四、变量作用域
理解变量作用域是编写可靠Python代码的关键:
# 全局变量
global_var = "I'm global"
def function1():
# 局部变量
local_var = "I'm local"
print(global_var) # 可以访问全局变量
print(local_var) # 可以访问局部变量
def function2():
# 修改全局变量需要声明
global global_var
global_var = "Modified global"
# 尝试访问function1的局部变量会出错
# print(local_var) # NameError: name 'local_var' is not defined
function1()
function2()
print(global_var) # 输出: Modified global
作用域层次:
- 局部作用域(Local) - 在函数内部
- 闭包作用域(Enclosing) - 嵌套函数中
- 全局作用域(Global) - 模块级别
- 内置作用域(Built-in) - Python内置名称
五、实战应用示例
5.1 购物车计算
# 定义常量
TAX_RATE = 0.08
DISCOUNT_THRESHOLD = 100
DISCOUNT_RATE = 0.1
# 定义变量
items = [
{"name": "Book", "price": 25.50},
{"name": "Pen", "price": 3.75},
{"name": "Notebook", "price": 12.99}
]
# 计算小计
subtotal = sum(item["price"] for item in items)
# 应用折扣
if subtotal > DISCOUNT_THRESHOLD:
discount = subtotal * DISCOUNT_RATE
else:
discount = 0
# 计算税费和总计
taxable_amount = subtotal - discount
tax = taxable_amount * TAX_RATE
total = taxable_amount + tax
# 打印结果
print(f"Subtotal: ${subtotal:.2f}")
print(f"Discount: -${discount:.2f}")
print(f"Tax ({TAX_RATE*100:.0f}%): ${tax:.2f}")
print(f"Total: ${total:.2f}")
5.2 用户注册验证
# 常量定义
MIN_PASSWORD_LENGTH = 8
MAX_USERNAME_LENGTH = 20
ALLOWED_SPECIAL_CHARS = "!@#$%^&*"
def validate_registration(username, password, email):
# 验证用户名
if len(username) < 3 or len(username) > MAX_USERNAME_LENGTH:
return False, "用户名长度必须在3-20个字符之间"
# 验证密码强度
if len(password) < MIN_PASSWORD_LENGTH:
return False, "密码长度至少8个字符"
has_upper = any(char.isupper() for char in password)
has_lower = any(char.islower() for char in password)
has_digit = any(char.isdigit() for char in password)
has_special = any(char in ALLOWED_SPECIAL_CHARS for char in password)
if not (has_upper and has_lower and has_digit and has_special):
return False, "密码必须包含大小写字母、数字和特殊字符"
# 简单验证电子邮件
if "@" not in email or "." not in email:
return False, "无效的电子邮件地址"
return True, "注册信息有效"
# 测试验证函数
result, message = validate_registration("alice2023", "SecurePass123!", "alice@example.com")
print(f"验证结果: {result}, 消息: {message}")
六、总结与最佳实践
变量使用最佳实践:
- 使用描述性变量名提高代码可读性
- 在函数内避免修改全局变量
- 为常量使用全大写命名
- 合理使用类型提示(Python 3.6+)
- 避免使用过短的变量名(除非在简单循环中)
常量使用最佳实践:
- 将常量集中定义在模块顶部
- 使用枚举定义相关常量组
- 对重要常量添加注释说明
- 避免在代码中直接使用魔法数字
掌握Python变量与常量是编程基础中的核心。合理使用变量与常量可以使你的代码更易读、更易维护、更少出错。记住:好代码是写给人类看的,只是恰好能被机器执行。
本文由ChaiZhi于2025-07-30发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20256871.html
发表评论