Skip to main content

Python的关键字

为什么不能使用关键字

在Python中还有一类名字是我们不能使用的,那就是我们本节要介绍的重点Python关键字,谈到了关键字,我就想到了古代避讳的故事。在古代是不允许别人使用皇帝的名字或者姓氏的。例如在隋唐演义里,就有一个人物叫做李元霸,但是他的原名并不叫做李元霸,而是叫做李玄霸。李玄霸这个名字还是有一个由来的,当年他的父亲李渊被贬到太原,在去往太原的路上他的母亲窦氏要生了,他们只能在一个道观借住一宿,所以李渊就将他的名字起为李玄霸,寓意玄门之霸,那么为什么在隋唐演义里却被改为李元霸了?原因其实很简单,因为隋唐演义这本书写于明末清初,而当时在位的皇帝是康熙。康熙的本名叫做爱新觉罗玄烨,而李玄霸这个名字中包含了一个玄字,为了避讳康熙这个玄字,所以作者将李玄霸改名李元霸。

李元霸 Python中的关键字就和这个避讳的故事非常相似,因为关键字是Python中已经使用了,所以不允许开发者自己定义,那么我们在为变量起名字的时候,就要避讳这些Python中的关键字。在Python中关键字有哪些呢?我们可以打开IDLE查看一下。

import keyword #导入关键字模块
keyword.kwlist

全部关键字列表

下面输出的内容就是Python中的全部关键字,我们在为变量命名的时候,就要避开这些关键字,否则的话程序就会报错。

关键字描述
False布尔类型的假值
None表示空值或缺失值
True布尔类型的真值
and逻辑运算符,表示逻辑与,两个条件都满足时返回True
as在with语句中用于取别名
assert断言语句,用于判断某个条件是否成立
async声明异步函数
await等待异步函数执行完成
break跳出循环
class类的关键字
continue跳过当前循环,进入下一个循环
def定义一个函数
del删除操作符,用于删除列表中的元素或者字典中的键值对
elifif语句的一个分支,表示“否则,如果...”
elseif语句的一个分支,表示“否则”
except异常处理语句
finally无论异常是否发生,都会执行的代码块
forfor循环语句
from导入模块中的指定内容
global声明一个全局变量
if条件语句的关键字,表示如果...则...
import导入一个模块
in成员运算符,用于判断某个元素是否在列表或字典中
is比较运算符,用于判断两个变量是否指向同一内存地址
lambda创建一个匿名函数
nonlocal声明一个非局部变量
not逻辑运算符,表示逻辑非,对条件取反
or逻辑运算符,表示逻辑或,两个条件有一个满足时返回True
pass空语句,用于占位,不做任何操作
raise抛出一个异常
return返回一个函数的结果
try异常处理语句
whilewhile循环语句
with一种上下文管理器,用于管理资源,如文件、网络连接等
yield生成器函数中的关键字,用于生成一个迭代器

使用关键字错误提示

那你可能会问了,关键字这么多,我该怎么记忆呢?在这里提醒小伙伴们,关键是不需要我们记忆,当我们写代码写的比较熟练了,这些关键字你就会全知道了。而且在很多开发工具中,如果你使用了关键字,作为变量名,那么它会提示你错误信息,例如我在Pycharm中,为一个变量定一个关键字,来看一下定义False=12345,我刚编写完这章代码,这里就出现了一个红色的波浪线,把鼠标移到这里,看到下面有个提示:assignment to keyword,也就是说你在为关键字赋值,所以出现了红色的波浪线错误。

pycharm提示关键字错误