跳到主要内容

变量(Variables)

变量是 Python 编程中最基础也是最重要的概念之一。通过本章节,你将掌握 Python 中变量的定义、命名规则和最佳实践。

基本概念

  • 变量是用来存储数据值的"容器"
  • 在 Python 中,变量在赋值时自动创建,无需声明类型
x = 10           # 整数类型
name = "Alice" # 字符串类型

变量的定义与使用

📌 如何定义变量

  • 使用等号(=)为变量赋值,左侧是变量名,右侧是值
age = 20          # age是整数
print(type(age)) # 输出: <class 'int'>

age = "twenty" # 现在age是字符串
print(type(age)) # 输出: <class 'str'>

📌 修改变量值

Python 中一个变量可以在程序执行期间指向不同类型的值,即变量的值可变:

  • 可以直接对变量重新赋值:
x = 5
x = x + 2 # 现在x的值是7
print(x) # 输出: 7
  • 也可以通过简化表达式修改:
counter = 1
counter += 1 # 相当于counter = counter + 1
print(counter) # 输出: 2

# 其他常见的简化表达式
counter -= 1 # 相当于counter = counter - 1
counter *= 2 # 相当于counter = counter * 2
counter /= 2 # 相当于counter = counter / 2

变量命名规则

📌 语法规范

变量名:

  • 只能包含字母、数字和下划线
  • 不能以数字开头
  • 不能是 Python 保留关键字(如for, if, class等)

Python 中的所有保留关键字如下:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield', 'match', 'case']

合法示例:

student_name = "John"
score1 = 85
_private = "这也是合法的"

非法示例(将报错):

1score = 85       # 不能以数字开头
for = 10 # 不能使用关键字
user-name = "Tom" # 不能包含连字符

📌 语义规范(命名最佳实践)

语义规范即大家约定俗成,都会遵循的规范。违反该规范不会报错。

  • 使用小写字母加下划线(snake_case)风格命名变量
  • 避免使用loi这样容易混淆的单字符
  • 保持一致性,例如统一使用user_name不要时而用username
# 不好的命名
n = 30
s = "Hello"

# 好的命名
max_attempts = 30
greeting_message = "Hello"
备注

💡 有意义的命名会让代码更易读、易维护:

常量(constant)

📌 常量的概念

  • 常量(Constant)是指在程序运行过程中值不改变的变量
  • Python没有真正的常量机制,但通过命名习惯来标识常量

📌 定义常量的方式

  • 使用全大写命名常量,单词与单词之间使用下划线链接并置于代码开头或专门的模块中:
PI = 3.14159
MAX_LOGIN_ATTEMPTS = 5
DATABASE_URL = "mongodb://localhost:27017"

📌 常量的意义

  • 提高代码可维护性:集中管理固定值
  • 避免"魔法数字":提高代码可读性
  • 有助于团队协作时理解代码意图
# 不好的做法
discount = price * 0.2

# 好的做法
DISCOUNT_RATE = 0.2
discount = price * DISCOUNT_RATE

小结

内容说明
变量定义用等号赋值,自动推断类型
修改变量可重新赋值或使用表达式
命名规范避免保留字,遵守语法规则
最佳实践使用有意义命名,统一风格
常量使用大写字母命名,值不应更改

如果想了解更详细的代码风格规范,请见附录:代码风格