pin_drop当前位置:知识文库 ❯ 图文

Python变量与命名规则

概述

变量是程序中用于存储数据的容器。在Python中,变量不需要声明类型,赋值即创建,这使得Python的变量使用非常灵活和简洁。本节将详细介绍变量的定义、赋值方式、命名规则以及常见的命名风格,帮助你规范地使用变量。


变量定义

在Python中,变量通过赋值操作来创建。当你给一个名称赋值时,Python会自动创建该变量并确定其类型。

基本定义

代码示例

name = "Alice"
age = 25
height = 1.68
is_student = True

上述代码创建了四个变量:

  • name:字符串类型

  • age:整数类型

  • height:浮点数类型

  • is_student:布尔类型

动态类型

Python是动态类型语言,变量的类型可以随时改变:

代码示例

x = 10
print(type(x))

x = "Hello"
print(type(x))

x = 3.14
print(type(x))

输出:

代码示例

<class 'int'>
<class 'str'>
<class 'float'>

提示:Python变量的类型由其存储的值决定,同一个变量可以被赋予不同类型的值。


变量赋值

基本赋值

使用等号=进行赋值:

代码示例

x = 100
message = "Hello Python"

重新赋值

变量可以被重新赋值,新值会覆盖旧值:

代码示例

score = 80
print(score)
score = 95
print(score)

链式赋值

将同一个值赋给多个变量:

代码示例

a = b = c = 0
print(a, b, c)

交换变量

Python支持优雅的变量交换方式,不需要临时变量:

代码示例

x = 10
y = 20
x, y = y, x
print(x, y)

多重赋值

多重赋值(也称为解包赋值)允许在一行中为多个变量分别赋不同的值。

基本多重赋值

代码示例

x, y, z = 1, 2, 3
print(x, y, z)

从列表/元组解包

代码示例

coordinates = [100, 200]
x, y = coordinates
print(f"x={x}, y={y}")

从字符串解包

代码示例

a, b, c = "ABC"
print(a, b, c)

扩展解包

使用*运算符收集多余的元素:

代码示例

first, *rest = [1, 2, 3, 4, 5]
print(first)
print(rest)

*beginning, last = [1, 2, 3, 4, 5]
print(beginning)
print(last)

head, *middle, tail = [1, 2, 3, 4, 5]
print(head)
print(middle)
print(tail)

命名规则

Python变量的命名必须遵循以下规则:

强制规则

规则 说明 正确示例 错误示例
只能包含字母、数字和下划线 不能包含空格和其他特殊字符 my_var my-var, my var
不能以数字开头 必须以字母或下划线开头 var1, _var 1var
不能使用关键字 Python保留字不能用作变量名 my_class class
区分大小写 Namename是不同的变量

代码示例

my_name = "Alice"
_age = 25
score1 = 100
score2 = 95

以下命名是非法的:

代码示例

2name = "Alice"
my-name = "Bob"
my name = "Charlie"
class = "Math"

命名风格

除了必须遵守的命名规则外,Python社区还有一些约定俗成的命名风格,遵循这些风格可以让代码更加规范和易读。

蛇形命名法(Snake Case)

Python推荐使用蛇形命名法(又称下划线命名法),即单词之间用下划线连接,所有字母小写:

代码示例

student_name = "Alice"
max_score = 100
is_valid = True
total_count = 50

提示:PEP 8规范推荐:变量名和函数名使用蛇形命名法。

驼峰命名法(Camel Case)

驼峰命名法分为大驼峰和小驼峰:

大驼峰(Pascal Case):每个单词首字母大写,Python中用于类名:

代码示例

class StudentInfo:
    pass

class DataProcessor:
    pass

小驼峰(camelCase):第一个单词首字母小写,后续单词首字母大写,Python中较少使用:

代码示例

studentName = "Alice"
maxScore = 100

常量命名

常量使用全大写字母,单词之间用下划线连接:

代码示例

MAX_SIZE = 100
PI = 3.14159
DEFAULT_COLOR = "white"

特殊命名

命名方式 用途 示例
_name 表示内部使用(弱内部引用) _internal_var
__name 类的私有属性 __private_attr
__name__ Python魔术方法/属性 __init__, __name__
_ 临时或不需要的变量 for _ in range(5)

命名风格对比

类型 风格 示例
变量 蛇形命名 student_name
函数 蛇形命名 calculate_area
大驼峰命名 StudentInfo
常量 全大写蛇形 MAX_VALUE
模块 简短蛇形 math_tools

代码示例

示例1:变量基本操作

代码示例

name = "张三"
age = 25
height = 1.75
is_employed = True

print(f"姓名: {name}")
print(f"年龄: {age}")
print(f"身高: {height}m")
print(f"在职: {is_employed}")

示例2:多重赋值与交换

代码示例

x, y, z = 10, 20, 30
print(f"x={x}, y={y}, z={z}")

x, y = y, x
print(f"交换后: x={x}, y={y}")

a = b = c = 100
print(f"a={a}, b={b}, c={c}")

示例3:常量与命名规范

代码示例

PI = 3.14159
MAX_RETRIES = 3
DEFAULT_TIMEOUT = 30

radius = 5
area = PI * radius ** 2
print(f"圆的面积: {area}")

circumference = 2 * PI * radius
print(f"圆的周长: {circumference}")

示例4:扩展解包

代码示例

scores = [95, 87, 92, 78, 88, 91, 85]

first, *rest = scores
print(f"第一个成绩: {first}")
print(f"其余成绩: {rest}")

*all_except_last, last = scores
print(f"最后一个成绩: {last}")

head, *middle, tail = scores
print(f"第一个: {head}, 中间: {middle}, 最后: {tail}")

注意事项

注意:先赋值后使用——变量必须先赋值才能使用,否则会引发NameError

注意:避免使用内置函数名——不要用liststrintsum等内置函数名作为变量名,这会覆盖内置函数。

注意:命名要有意义——变量名应能表达其存储数据的含义,避免使用abc等无意义名称(简单循环除外)。

注意:区分大小写——Namename是两个不同的变量,注意不要混淆。

注意:常量约定——Python没有真正的常量机制,全大写命名只是约定,技术上仍可修改。


小结

本节我们学习了:

  • 变量定义:Python变量通过赋值创建,无需声明类型

  • 变量赋值:基本赋值、链式赋值、变量交换

  • 多重赋值:一行代码为多个变量赋值,支持解包和扩展解包

  • 命名规则:只能包含字母、数字和下划线,不能以数字开头,不能使用关键字

  • 命名风格:变量用蛇形命名,类用大驼峰,常量用全大写

规范的变量命名是编写可读代码的基础,养成良好命名习惯将使你的代码更专业。


练习题

练习1

以下哪些变量名是合法的?哪些是不合法的?请说明原因。

代码示例

my_name, 2nd_place, _private, class, studentAge, my-var, MAX_SIZE, __init__, 123, hello_world

练习2

使用多重赋值和解包,将元组(100, 200, 300, 400, 500)中的值分别赋给变量firstmiddlelast,其中middle接收中间三个值。然后打印三个变量的值。

常见问题

Python中的变量需要先声明类型吗?

不需要。Python是动态类型语言,变量通过赋值自动创建,类型由存储的值决定,无需提前声明。

Python变量命名有哪些必须遵守的规则?

变量名只能包含字母、数字和下划线;不能以数字开头;不能使用Python关键字(如class、if、for等);变量名区分大小写。

如何在一行代码中交换两个变量的值?

Python支持元组解包方式交换变量,语法为x, y = y, x,无需使用临时变量。

蛇形命名法和驼峰命名法有什么区别?

蛇形命名法(snake_case)用下划线连接单词,全部小写,是Python变量和函数的推荐风格。驼峰命名法分为大驼峰(PascalCase,每个单词首字母大写,用于类名)和小驼峰(camelCase,首单词小写后续首字母大写,Python中较少使用)。

什么是扩展解包?如何使用星号运算符?

扩展解包使用*运算符收集多余的元素为列表。例如first, *rest = [1, 2, 3, 4, 5]中,first为1,rest为[2, 3, 4, 5]。星号可以放在任意位置。

标签: Python变量 命名规则 蛇形命名法 多重赋值 变量解包 动态类型 PEP 8规范

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python缩进与代码块 下一篇: Python关键字与标识符

poll相关推荐

作者头像 智能小晨 python

Python类型转换详解

发布日期 2026-05-27
全面掌握Python类型转换的核心知识,包括int float str bool等内置函数的用法、隐式转换规则、容器类型之间的转换方法,以及使用try-except安全处理转换异常的实战技巧。通过丰富的代码示例,帮助你写出更健壮的Python代码。
作者头像 智能小晨 python

Python字符串类型详解

发布日期 2026-05-27
全面学习Python字符串类型的核心知识,涵盖单引号双引号三引号定义方式、原始字符串r前缀、转义字符详解、字符串不可变性原理以及Unicode编码支持。
作者头像 智能小晨 python

Python布尔类型详解

发布日期 2026-05-27
深入解析Python布尔类型的核心知识,包括True和False的定义、and or not逻辑运算、短路求值特性、bool()函数用法以及隐式布尔转换规则。通过丰富的代码示例,帮助你掌握Python布尔类型的实际应用,写出更优雅的条件判断代码。
作者头像 智能小晨 python

Python复数类型complex详解

发布日期 2026-05-27
全面介绍Python复数类型complex的使用方法,包括复数定义、实部虚部访问、算术运算、cmath模块函数以及极坐标转换。掌握复数在科学计算和工程领域的应用。