03.python的变量的命名和使用

Python 变量的命名和使用完全指南

第一部分:变量命名

一、变量名是什么?

变量名 就是你给“装数据的盒子”起的名字。以后在代码里写这个名字,就是在用这个变量。

# 这里的 name、age、score 都是变量名
name = "小明"
age = 18
score = 95.5

起名时要遵守 硬性规则(否则报错),并尽量遵循 推荐习惯(代码更易读、更专业)。


二、命名的硬性规则(必须遵守)

下面几条是 Python 语法规定的,不满足就会报错

2.1 只能使用这三类字符

变量名里只能出现:

  • 英文字母:a-z、A-Z
  • 数字:0-9
  • 下划线:_

正确示例:

name = "小红"
age1 = 18
my_name = "小明"
user_id = 10001
_temp = 0
MAX_COUNT = 100

错误示例:

my-name = "错误"    # 不能有减号 -(会被当成减号运算)
my name = "错误"    # 不能有空格
价格 = 10           # 不推荐用中文(有的环境会出问题,建议用英文)
a@b = 1             # 不能有 @、#、$ 等符号

2.2 不能以数字开头

第一个字符必须是 字母下划线,不能是数字。

正确示例:

name = "小明"
_name = "内部变量"
a1 = 1

错误示例:

1name = "错误"      # 报错:不能以数字开头
2b = 3              # 报错

2.3 区分大小写

同一个名字,大写和小写算不同的变量

name = "小明"
Name = "小红"
NAME = "小刚"
print(name)   # 输出:小明
print(Name)   # 输出:小红
print(NAME)   # 输出:小刚

所以起名时要前后一致,不要有时写 userName,有时写 username,否则容易出错。


三、保留字(关键字)不能当变量名

Python 已经把一些词留给语法用了,这些词叫 保留字(关键字),不能用来当变量名。

常见保留字有:
and, as, assert, break, class, continue, def, del, elif, else, except, False, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield 等。

错误示例:

class = "一班"    # 报错:class 是保留字
if = 10           # 报错:if 是保留字
for = 5           # 报错:for 是保留字
True = 0          # 报错:True 是保留字

正确做法: 换一个名字,或加前后缀。

class_name = "一班"
my_if = 10
is_true = 1

如何查看所有保留字(了解即可):

import keyword
print(keyword.kwlist)

四、命名的推荐习惯(建议遵守)

这些不会导致报错,但能让代码更清晰、更规范。

4.1 见名知意

变量名最好能一眼看出含义,避免无意义的单字母(除非只是临时用一下)。

推荐:

student_name = "李华"
total_score = 0
is_pass = True
user_age = 18

不推荐:

a = "李华"       # 看不出是什么
x = 0            # 不知道代表什么
n = 18           # 不清晰

在循环里临时用 ij 是可以的,因为大家约定俗成表示“第几个”:

for i in range(5):
    print(i)

4.2 多个单词用下划线连接(蛇形命名)

Python 官方推荐风格:多个单词之间用 下划线 连接,字母一般小写。这种写法叫“蛇形命名”(snake_case)。

推荐:

user_name = "小明"
total_count = 100
is_student = True
max_score = 100

不推荐(在 Python 里):

userName = "小明"    # 这是其他语言风格,Python 里少用
UserName = "小明"    # 大驼峰一般用于类名

4.3 全大写的“常量”风格

如果有一个值在程序里基本不变,很多人会把它写成全大写,表示“这是常量”。Python 不会强制,只是约定。

MAX_SIZE = 100
PI = 3.14159
DEFAULT_PORT = 8080

4.4 不要用拼音(尽量用英文)

变量名尽量用英文,方便以后协作和阅读。

推荐:

name = "小明"
age = 18
price = 19.5

不推荐:

xingming = "小明"
nianling = 18

4.5 长度要适中

  • 不要太短:ax 除了循环里,一般不知道什么意思
  • 也不要过长:the_student_name_in_this_class 读起来累
  • 适中:student_nametotal_price 就很好

五、命名小结表

项目 要求
可用字符 字母、数字、下划线
首字符 必须是字母或下划线,不能是数字
大小写 区分,nameName 是不同变量
保留字 不能当变量名
风格建议 小写 + 下划线、见名知意、常量可全大写

六、命名正反例对比

# ========== 正确且推荐 ==========
user_name = "小明"
student_age = 18
total_price = 99.5
is_active = True
MAX_LENGTH = 100

# ========== 正确但不推荐 ==========
a = "小明"           # 无意义
UserName = "小明"    # Python 里更推荐 user_name

# ========== 错误(会报错)==========
# 1name = "小明"     # 数字开头
# my-name = "小明"   # 非法字符
# class = "一班"     # 保留字

第二部分:变量的使用

七、赋值:把值存进变量

使用变量的第一步是 赋值:用等号 = 把右边的值存到左边的变量里。

格式: 变量名 = 值变量名 = 表达式(先算表达式,再赋值)

示例:

# 直接赋一个值
name = "小明"
age = 18
score = 95.5

# 赋表达式的结果
total = 80 + 20
message = "你好," + name

八、使用变量:参与运算、打印、赋值

赋值之后,在代码里写 变量名,就相当于用 它当前的值

8.1 在运算中使用

a = 10
b = 3
print(a + b)    # 13
print(a * b)    # 30

x = 5
y = x + 1       # 用 x 的值 5 参与计算,y 变成 6
print(y)        # 6

8.2 在 print 中使用

name = "小明"
age = 18
print(name)              # 输出:小明
print(age)               # 输出:18
print(name, age)         # 输出:小明 18
print("姓名:", name, "年龄:", age)
# 输出:姓名: 小明 年龄: 18

8.3 在赋值右边使用(包括“自己”)

a = 10
b = a          # 把 a 的值 10 赋给 b
print(b)       # 10

# 用自己更新自己
count = 0
count = count + 1   # 先算 count+1 得 1,再赋给 count
count = count + 1   # 再变成 2
print(count)        # 2

九、修改变量的值(重新赋值)

变量可以多次赋值,每次赋值后,变量就“变成”新值,旧值被覆盖。

x = 10
print(x)   # 10
x = 20
print(x)   # 20
x = "现在变成字符串了"
print(x)   # 现在变成字符串了

注意: 变量没有“固定类型”,同一个变量名可以先存整数,再存字符串(但不建议随意换类型,容易搞混)。


十、一次给多个变量赋值

10.1 多个变量,同一个值

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

10.2 多个变量,各自的值(一一对应)

左边变量个数 要和 右边值的个数 相同,按顺序对应。

name, age, city = "小明", 18, "北京"
print(name, age, city)   # 小明 18 北京

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

错误示例: 个数不一致会报错。

# a, b = 1, 2, 3   # 报错:左边 2 个,右边 3 个
# a, b, c = 1, 2   # 报错:左边 3 个,右边 2 个

10.3 交换两个变量的值

不需要临时变量,一行即可:

a, b = 10, 20
a, b = b, a
print(a, b)   # 20 10

十一、变量在表达式中的“代入顺序”

赋值时,先算右边,再赋给左边。所以右边用到的变量,用的是当前这一刻的值。

a = 1
b = 2
c = a + b       # 用的是当前 a=1、b=2,所以 c=3
print(c)        # 3

a = 10          # 后面改 a,不会影响已经算好的 c
print(c)        # 还是 3

再看一个容易糊涂的例子:

x = 10
x = x + 1
# 步骤:先算右边 x+1,此时 x 是 10,所以 10+1=11;再把 11 赋给 x
print(x)        # 11

十二、变量与字符串拼接

字符串 + 字符串 可以拼接;字符串 + 数字 会报错,需要先把数字转成字符串。

name = "小明"
age = 18

# 错误写法(会报错)
# msg = "我是" + name + ",今年" + age + "岁"

# 正确:用 str(age) 转成字符串
msg = "我是" + name + ",今年" + str(age) + "岁"
print(msg)   # 我是小明,今年18岁

用 print 多个参数(推荐,不用自己加空格和转字符串):

print("我是", name, ",今年", age, "岁")
# 输出:我是 小明 ,今年 18 岁(逗号处会自动加空格)

十三、变量在函数参数中的使用

调用函数时,可以把变量作为参数传进去,传的是变量的值

name = "小明"
age = 18
print(name)           # 把 name 的值 "小明" 传给 print
print(name, age)      # 传入两个值

# 自己写的函数也一样(后面会学 def)
# 例如:greet(name) 被调用时,用的是 name 当前的值

十四、同一变量名在不同地方(简单了解)

同一个变量名,在同一段代码顺序执行的过程中,只有一个“当前值”。后面的赋值会覆盖前面的。

x = 1
print(x)   # 1
x = 2
print(x)   # 2

如果先在一个地方用变量,再在后面才赋值,就会报错(因为“使用”时还没有这个变量):

# print(y)   # 若上面从没给 y 赋过值,会报错:name 'y' is not defined
y = 5
print(y)   # 正确

所以:先赋值,再使用


十五、常见使用错误

15.1 没赋值就用

# print(abc)   # 报错:NameError,没有定义过 abc
abc = 10
print(abc)     # 正确

15.2 名字拼错

name = "小明"
# print(nmae)  # 报错:nmae 没定义,你本想写 name
print(name)    # 正确

15.3 以为“数学等式”会两边同时成立

# 错误理解:以为 a 和 b 会“永远相等”
a = 10
b = a
a = 20
print(b)   # 输出 10,不是 20!因为 b 拿到的是当时 a 的值 10,之后 a 变了,b 不会自动变

15.4 字符串和数字混用没转换

age = 18
# print("年龄:" + age)   # 报错
print("年龄:" + str(age))  # 正确

第三部分:综合示例与小结

十六、综合示例:命名 + 赋值 + 使用

# 1. 规范的命名 + 赋值
student_name = "李华"
student_age = 18
math_score = 92
english_score = 88

# 2. 用变量参与计算
total_score = math_score + english_score
average_score = total_score / 2

# 3. 用变量打印
print("学生:", student_name)
print("年龄:", student_age)
print("总分:", total_score)
print("平均分:", average_score)

# 4. 重新赋值(例如成绩更正)
math_score = 95
total_score = math_score + english_score
print("更正后总分:", total_score)

十七、小结表

主题 要点
命名规则 仅字母/数字/下划线;不以数字开头;区分大小写;不用保留字
命名习惯 见名知意、小写+下划线、常量可全大写、少用拼音
赋值 变量名 = 值变量名 = 表达式;先算右边再赋左边
使用 在运算、print、赋值右边写变量名,即用其当前值
多变量赋值 a=b=c=0a,b=1,2a,b=b,a 可交换
易错点 未赋值就用、拼错名、字符串+数字未用 str()

发表评论