Python标识符与关键字
简单5给变量起个好名字:Python 的标识符与关键字
给变量、函数起名,就像给自己的宠物或班级的同学起外号一样,既要好记,又得遵守「家规」。在 Python 里,这些名字叫做 标识符,而 Python 自己留了一些有特殊含义的词,叫作 关键字(也叫保留字),不允许我们拿来当名字用。搞懂这两样东西,你写代码时就不会莫名其妙地报错了。
一、标识符的起名规则
标识符可以是字母、数字和下划线(_)的组合,但 不能以数字开头。就像你给同学起外号,不能上来就叫“2号同学”,因为大家会听不懂。
合法的标识符示例:
my_name = "小明" # 字母和下划线
score2 = 98 # 字母和数字,数字在中间
_private = "秘密" # 以下划线开头(有特殊含义,但语法上合法)
total_score = 100 # 多个单词用下划线连接(推荐写法)
非法的标识符示例:
2nd_place = 88 # 错误!数字开头
my-name = "小红" # 错误!不能包含连字符(-)
class = "一班" # 错误!class 是关键字(见下文)
❗ 注意:大小写是敏感的。
Name和name是两个不同的变量。就像班级里“李明”和“李鸣”不是同一个人。
二、关键字——Python 自己的“禁词”
Python 提前保留了一些单词,比如 if、for、while、True、False、None、and、or、not 等,它们有特殊的语法功能。如果你试图用它们做变量名,Python 会直接报错。
例如:
True = 1 # 错误!True 是关键字,不能赋值
if = "条件" # 错误!if 是关键字
你可以在 Python 里查看所有关键字:
import keyword # 导入关键字模块
print(keyword.kwlist) # 打印关键字列表
运行结果会像这样(版本不同略有差异):
['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']
这些词你一眼就能认出:if(如果)、else(否则)、for(循环)、while(当…时)、True(真)、False(假)、None(无)等等。将来你学更多语法时,它们会频繁出现。
三、生活中的比喻,帮你记住规则
- 班级学号:每个同学有一个唯一学号(标识符),不能重复,也不能写成“班主任”(关键字)。
- 零食包装上的名称:比如“薯片”“巧克力”是品类名(关键字),你不能把一包新零食取名叫“薯片”,因为Python已经用它来表示某种口味了。
- 考试排名:变量名
rank1、rank2可以,但1st就不行(数字开头)。
四、新手容易犯的错误
- 数字开头:比如
3students,这是最常见的错误。 - 使用关键字:比如
class = "Python",一运行就会报SyntaxError: invalid syntax。 - 包含特殊符号:比如
$money、my-var,Python 只接受字母、数字和下划线。 - 大小写混淆:
score和Score是两个不同的变量,容易让代码逻辑混乱(虽然语法上没错)。 - 忘记下划线:多个单词时推荐用下划线连接,比如
my_score,不要用myscore(难读)或myScore(驼峰式也可以,但中小学生推荐下划线风格)。
五、完整可运行示例
下面这个程序先打印出所有关键字,再演示正确与错误的变量名:
import keyword
# 1. 打印 Python 所有关键字
print("Python 关键字列表:")
print(keyword.kwlist)
print() # 空一行
# 2. 正确的变量名
my_age = 12 # 年龄
score_math = 95 # 数学成绩
_name = "秘密" # 以下划线开头(可以,但通常用于内部变量)
# 3. 错误的变量名(注释掉,以免运行报错)
# 2nd_place = 100 # 数字开头,会报错
# class = "一班" # class 是关键字,会报错
# my-var = 10 # 连字符,会报错
# 4. 输出看看
print("我的年龄:", my_age)
print("数学成绩:", score_math)
print("秘密名字:", _name)
运行结果(部分):
Python 关键字列表:
['False', 'None', 'True', 'and', 'as', 'assert', ...]
我的年龄: 12
数学成绩: 95
秘密名字: 秘密
注意:上面的错误示例被注释掉了,你可以把注释去掉试试,看看报错信息长什么样子。
六、相关知识点指引
你已经学会了如何给变量起一个合法的名字。接下来可以学习:
- 变量与数据类型:名字起好了,里面可以放数字、文字、真假值等。
- 命名规范:除了规则,还有大家约定俗成的习惯(如常量全大写、避免单字符变量名)。
- Python 中的保留字与内置函数:关键字不能做变量名,但像
print、len这种内置函数名,虽然技术上可以覆盖(不推荐),但新手最好也别用。
记住:规则是底线,好名字能让你的代码像一篇清晰的作文,而不是天书。加油!
例题精讲
下列选项中,哪一个可以作为Python合法的标识符?
以下选项中,哪一个是Python中的关键字(保留字)?
在Python中,标识符是区分大小写的,例如“Name”和“name”是不同的标识符。
在Python中,“True”是一个关键字,不能用作变量名。
定义变量并赋值:请在下划线处填入一个合法的标识符(不能是关键字),使代码能够正确执行。
___ = 18