简单 Python 快乐之旅之:Python 基础语法之关键字专题

文章目录

  • 1. Python 关键字的分类
    • 1.1. 内置常量
    • 1.2. 逻辑运算
    • 1.3. 判断与循环
    • 1.4. 函数
    • 1.5. 异常处理
    • 1.6. 导入模块
    • 1.7. 重命名
    • 1.8. 变量
    • 1.9. 类
    • 1.10. 删除
    • 1.11. 上下文管理
    • 1.12. 协程
  • 2. 检查指定字符串是否是关键字
  • 3. 打印所有的 Python 关键字
  • 参考资料

Python 3.7.1 的 keyword 库对所有关键字列表的定义源代码如下:

kwlist = [
#--start keywords--
        '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',
#--end keywords--
        ]

可以看到,在 keyword.kwlist 这张列表中一共定义了 35 个关键字。

1. Python 关键字的分类

1.1. 内置常量

  • True
  • False
  • None

1.2. 逻辑运算

  • not 对布尔值求反
  • and 前后布尔表达式中的条件都必须满足
  • or 前后布尔表达式中的条件至少满足一个

1.3. 判断与循环

  • if 用于决定要执行哪个语句块
  • elif 表示 else if。如果前面 if 的测试结果为 False,那么继续这一个
  • else 可选的。除非条件是 True,否则执行 else 关键字后的语句块
  • is 测试对象的同一性
  • in 测试特定的值是否存在列表中
  • for 控制集合中项目的遍历
  • while 控制程序的流程
  • break 中断当前循环并跳出整个循环
  • continue 中断当前循环,不跳出整个循环,继续执行下一循环

1.4. 函数

  • def 用于创建一个新的用户自定义函数
  • lambda 创建一个新的匿名函数
  • pass 什么也不做
  • return 退出当前函数并返回一个值
  • yield 用于生成器

1.5. 异常处理

  • try 定义异常处理
  • except 捕捉异常并执行代码
  • finally 总是在最后执行。用于清理资源
  • raise 创建一个用户自定义异常
  • assert 用于调试目的

1.6. 导入模块

  • import 将其他模块导入一个 Python 脚本
  • from 用于从一个模块导入特定的变量、类或函数

1.7. 重命名

  • as 给模块起一个别名

1.8. 变量

  • global 访问函数外部定义的全局变量
  • nonlocal 访问函数外层定义的非全局变量

1.9. 类

  • class 用于创建新的用户自定义对象

1.10. 删除

  • del 删除对象

1.11. 上下文管理

  • with 确保不管使用过程中是否发生异常都会执行必要的 “清理” 操作

1.12. 协程

  • async 将普通函数和生成器函数包装成异步函数和异步生成器
  • await 挂起自身的协程,并等待另一个协程完成直到返回结果

2. 检查指定字符串是否是关键字

在接下来的例子中,我们将会由用户随意输入一个字符串,然后使用 keyword 库判断其是否是一个关键字。

# Python – Check if given String is Keyword
import keyword

if __name__ == '__main__':
    # read string from user
    s = input("Enter a string: ")
    # check if the string is a keyword
    iskey = keyword.iskeyword(s)
    print('Is', s, 'a keyword:', iskey)

多次执行并输出结果:

D:\PycharmProjects\MyPythonApp\venv\Scripts\python.exe D:/PycharmProjects/MyPythonApp/testkeywords.py
Enter a string: pop
Is pop a keyword: False

D:\PycharmProjects\MyPythonApp\venv\Scripts\python.exe D:/PycharmProjects/MyPythonApp/testkeywords.py
Enter a string: print
Is print a keyword: False

D:\PycharmProjects\MyPythonApp\venv\Scripts\python.exe D:/PycharmProjects/MyPythonApp/testkeywords.py
Enter a string: for
Is for a keyword: True

D:\PycharmProjects\MyPythonApp\venv\Scripts\python.exe D:/PycharmProjects/MyPythonApp/testkeywords.py
Enter a string: true
Is true a keyword: False

D:\PycharmProjects\MyPythonApp\venv\Scripts\python.exe D:/PycharmProjects/MyPythonApp/testkeywords.py
Enter a string: yield
Is yield a keyword: True

3. 打印所有的 Python 关键字

在接下来的例子中,我们将要使用 kwlist 属性获取 Python 关键字列表,并使用 for 循环将所有关键字打印出来:

# Example – Get all Python Keywords programmatically
import keyword
import sys

if __name__ == '__main__':
	print('All keywords of Python', sys.version, ':')
    # get all keywords
    keywords = keyword.kwlist
    # print the keywords
    for key in keywords:
        print(key)

执行和输出:

All keywords of Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] :
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       

参考资料

  • Python – Check if given String is Keyword
  • Python – Get the list of all keywords programmatically
  • Keywords in Python
  • Python keywords

你可能感兴趣的:(简单 Python 快乐之旅之:Python 基础语法之关键字专题)