您的位置:首页 > 编程语言 > Python开发

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

2019-04-27 16:06 1136 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/defonds/article/details/89602978

文章目录

  • 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

    参考资料

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: