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

Python变量与常量教程 - 编程基础核心概念 | Python学习指南

Python变量与常量教程

掌握编程基础核心概念,写出更规范的Python代码

Python变量与常量概述

在Python编程中,变量常量是存储数据的基本单元。理解它们的概念和正确使用方式是成为高效Python开发者的关键一步。

变量

变量是存储数据的命名容器,其值可以在程序执行过程中改变。

常量

常量是值在程序执行期间不会改变的命名容器,通常用于表示固定值。

变量基础

Python中的变量不需要显式声明类型。当给变量赋值时,解释器会根据值自动推断类型。

变量声明与赋值

在Python中,使用等号=进行变量赋值:

# 基本变量赋值
name = "Alice"  # 字符串类型
age = 30        # 整数类型
height = 1.75   # 浮点数类型
is_student = True  # 布尔类型

# 打印变量
print(name)       # 输出: Alice
print(age)        # 输出: 30
print(height)     # 输出: 1.75
print(is_student) # 输出: True

# 重新赋值
age = 31
print(age)  # 输出: 31

多变量赋值

Python允许同时为多个变量赋值:

# 同时为多个变量赋相同的值
x = y = z = 10
print(x, y, z)  # 输出: 10 10 10

# 同时为多个变量赋不同的值
a, b, c = 5, 3.2, "Hello"
print(a, b, c)  # 输出: 5 3.2 Hello

# 交换变量值
x = 1
y = 2
x, y = y, x
print(x, y)  # 输出: 2 1

变量命名规则

良好的命名习惯可以提高代码可读性和可维护性。

合法命名规则

  • 以字母或下划线开头
  • 后续字符可以是字母、数字或下划线
  • 区分大小写(ageAge是不同的变量)
  • 不能使用Python关键字作为变量名

命名风格

  • 蛇形命名法(snake_case): 单词小写并用下划线分隔(Python推荐)
    user_name, total_count
  • 驼峰命名法(camelCase): 首单词小写,后续单词首字母大写
    userName, totalCount
  • 帕斯卡命名法(PascalCase): 每个单词首字母大写
    UserName, TotalCount

命名最佳实践

  • 使用描述性的名称(避免使用a, x等无意义名称)
  • 保持一致性(在整个项目中统一命名风格)
  • 避免使用单个字符(除了简单的计数器如i, j
  • 避免使用Python内置函数名(如list, str, dict

Python数据类型

Python是动态类型语言,变量类型在运行时确定。

数值类型

  • int: 整数(如:5, -10, 1000)
  • float: 浮点数(如:3.14, -0.001, 2.0)
  • complex: 复数(如:3+5j)

文本类型

  • str: 字符串(如:"Hello", 'Python')

序列类型

  • list: 有序可变序列(如:[1, 2, 3])
  • tuple: 有序不可变序列(如:(1, 2, 3))
  • range: 不可变的数字序列(如:range(5))

映射类型

  • dict: 键值对集合(如:{"name": "Alice", "age": 30})

集合类型

  • set: 无序不重复元素集(如:{1, 2, 3})
  • frozenset: 不可变集合

布尔类型

  • bool: 布尔值(True或False)

类型检查与转换

# 检查变量类型
x = 10
print(type(x))  # 输出: <class 'int'>

y = "20"
print(type(y))  # 输出: <class 'str'>

# 类型转换
a = int("10")   # 字符串转整数
b = float(5)    # 整数转浮点数
c = str(3.14)   # 浮点数转字符串
d = bool(0)     # 整数转布尔值 (0为False, 非零为True)

变量作用域

作用域决定了变量在程序中的可见范围。

局部变量

在函数内部定义的变量,只能在函数内部访问。

def my_function():
    local_var = "I'm local"
    print(local_var)

my_function()
# 在函数外部无法访问 local_var

全局变量

在函数外部定义的变量,可以在整个模块中访问。

global_var = "I'm global"

def my_function():
    print(global_var)  # 可以访问全局变量

my_function()
print(global_var)  # 在函数外部也可以访问

global关键字

要在函数内部修改全局变量,需要使用global关键字:

count = 0

def increment():
    global count  # 声明使用全局变量
    count += 1

increment()
print(count)  # 输出: 1

常量

Python没有内置的常量类型,但开发者通常遵循约定来定义常量。

常量命名约定

在Python中,常量通常使用全大写字母命名,单词间用下划线分隔:

PI = 3.14159
MAX_USERS = 100
DEFAULT_TIMEOUT = 30
API_KEY = "a1b2c3d4e5"

创建真正的常量

虽然Python本身不强制常量不可变,但可以通过类实现真正的常量:

class Constants:
    @property
    def PI(self):
        return 3.14159
        
    @property
    def GRAVITY(self):
        return 9.8

const = Constants()
print(const.PI)     # 输出: 3.14159
const.PI = 3.14     # 会引发AttributeError

变量与常量最佳实践

变量使用建议

  • 使用描述性名称
  • 遵循命名约定(snake_case)
  • 避免使用全局变量,除非必要
  • 避免使用单个字符命名(计数器除外)
  • 初始化变量后再使用

常量使用建议

  • 使用全大写命名
  • 将常量集中在模块顶部或单独文件中
  • 避免在代码中硬编码值
  • 使用枚举表示一组相关常量

其他建议

  • 避免使用Python关键字作为变量名
  • 避免使用内置函数名作为变量名
  • 使用类型提示提高代码可读性
  • 删除不再使用的变量(使用del

变量使用示例

# 好的变量命名实践
def calculate_circle_area(radius):
    PI = 3.14159  # 常量使用大写
    area = PI * radius ** 2
    return area

# 使用类型提示
def greet_user(user_name: str) -> str:
    greeting = f"Hello, {user_name}!"
    return greeting

# 删除不再需要的变量
large_data = [x for x in range(1000000)]
# 处理large_data...
del large_data  # 释放内存

总结

理解Python变量与常量是编程基础的关键。变量是存储数据的命名容器,其值可以改变;而常量是值不会改变的数据容器,通常用全大写命名约定表示。掌握变量作用域、命名规则和数据类型转换将帮助你写出更清晰、更健壮的Python代码。

关键要点

  • 使用描述性的变量名
  • 遵循Python命名约定
  • 理解变量作用域
  • 使用大写字母表示常量

发表评论