当前位置:首页 > Python > 正文

Python变量与常量完全指南:从基础到实战应用 | Python编程教程

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

作用域层次:

  1. 局部作用域(Local) - 在函数内部
  2. 闭包作用域(Enclosing) - 嵌套函数中
  3. 全局作用域(Global) - 模块级别
  4. 内置作用域(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变量与常量是编程基础中的核心。合理使用变量与常量可以使你的代码更易读、更易维护、更少出错。记住:好代码是写给人类看的,只是恰好能被机器执行

发表评论