python——保留字

Python中的标识符是用于识别变量、函数、类、模块以及其他对象的名字,标识符可以包含字母、数字及下划线(_),但是必须以一个非数字字符开始。字母仅仅包括ISO-Latin字符集中的A–Z和a–z。标识符对大小写敏感的,因此 FOO和foo是两个不同的对象。特殊符号,如$、%、@等,不能用在标识符中。另外,如if,else,for 等单词是保留字,也不能将其用作标识符。下面的表列出了所有的保留字符及其说明:

截图来自:《Python开发技术详解》



保留字       说明
and 用于表达式运算,逻辑与操作
as用于类型转换
assert断言,用于判断变量或条件表达式的值是否为真
break中断循环语句的执行
class用于定义类
continue继续执行下一次循环
def用于定义函数或方法
del删除变量或者序列的值
elif条件语句 与if else 结合使用
else条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用
exceptexcept 包括捕获异常后的操作代码,与try,finally结合使用
exec用于执行python语句
for循环语句
finally用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用
from用于导入模块,与import结合使用
global定义全局变量
if条件语句,与else,elif结合使用
import用于导入模块,与from 结合使用
in判断变量是否存在序列中
is判断变量是否为某个类的实例
lambda定义匿名函数
not用于表达式运算,逻辑非操作
or用于表达式运算,逻辑或操作
pass空的类,函数,方法的占位符
print打印语句
raise异常抛出操作
return用于从函数返回计算结果
try包含可能会出现异常的语句,与except,finally结合使用
while循环语句
with简化Python的语句
yield用于从函数依次返回值

以下划线开始或者结束的标识符通常有特殊的意义。例如以一个下划线开始的标识符(如 _foo)不能用from module import *语句导入。前后均有两个下划线的标识符,如__init__,被特殊方法保留。前边有两个下划线的标识符,如__bar,被用来实现类私有属性,这个将在第七章--类与面向对象编程中讲到。通常情况下,应该避免使用相似的标识符。

### 处理保留字的方法 在构建词法分析器时,处理保留字是一个重要环节。对于PLY库而言,在`lex.py`文件中定义的正则表达式规则可以用于识别不同的标记[^1]。 为了有效地管理保留字,通常的做法是在创建lexer之前建立一个包含所有关键字的集合或者字典。当遇到标识符(identifier)的时候,先检查这个标识符是否存在于预设的关键字列表里;如果存在,则返回相应关键字作为token类型而不是普通的IDENTIFIER token。以下是实现这一功能的一个例子: ```python import ply.lex as lex # 假定有一个关键词表 reserved = { 'if' : 'IF', 'else' : 'ELSE', 'while' : 'WHILE', } tokens = [ 'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'NUMBER' ] + list(reserved.values()) def t_ID(t): r'[a-zA-Z_][a-zA-Z_0-9]*' # 查看该ID是不是保留字 t.type = reserved.get(t.value,'ID') return t ``` 上述代码片段展示了如何通过映射来区分普通变量名和编程语言中的特殊单词(即保留字)。每当匹配到可能为标识符的部分模式时,程序就会查询它是否属于已知的保留字之一,并据此调整最终产生的Token类型。 另外值得注意的是,在某些情况下,开发者可能会倾向于将所有的逻辑都集中在一个函数内部完成,就像下面展示的例子那样简化了语法描述并实现了加减运算的功能[^2]。然而这种做法并不适用于涉及复杂结构如保留字的情况,因为这需要更精细地控制各个部分的行为以及它们之间的交互方式。 针对可能出现的错误情况,比如非法输入导致无法解析的情形下,可以通过自定义异常机制来进行更加精确地错误报告而不依赖于默认行为——即不自动恢复至正常状态继续尝试其他规则[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值