{{ selected_gold.title }}

  • ¥ {{ selected_gold.original_price }}
  • ¥ {{ selected_gold.price }}
  • {{ selected_gold.number_of_order }} 人订阅
  • {{ selected_gold.total_likers_count }}
    由 {{ selected_gold.creator_name }} 编辑

    {{ title }}

    请登录购买({{ selected_gold.price }}元),即可解锁剩余教程
    点击购买

    • Air
    • 2018年7月31日

    一个完整的Python程序

    编写一个Python程序很简单,你只需要在电脑上新建一个后缀为.py的文件,然后在这个文件中编写指令或者定义和调用函数,然后便可用Python解释器来执行这个文件。这些指令构成了Python程序的逻辑,也决定了该程序的功能,因此,在这一章中,我们有必要来了解一下一个完整的Python程序。

    本文将通过以下2个方面来展开:

    • Python程序的构成
    • Python程序的执行过程

    Python程序的构成

    以下代码来自文件digwebs.py,是digwebs中的某个脚本文件。

    #!/usr/bin/env python
    
    __author__ = 'SLZ'
    
    '''
    digwebs framework demo.
    '''
    
    import logging
    logging.basicConfig(level=logging.INFO)
    
    from www.web import digwebs_app
    
    if __name__ == '__main__':
        digwebs_app.run(9999, host='0.0.0.0')
    else:
        wsgi_app = digwebs_app.get_wsgi_application()
    

    以上代码片段包含了一些常用的知识点:

    1. #!/usr/bin/env python指定了运行该脚本的程序是Python
    2. __author__ = 'SLZ'用于标记该文件的作者是SLZ
    3. 2个'''之间的内容代表注释,注释的作用是写给人看的,因此Python解释器会忽略注释中的内容
    4. import关键字用于导入外部模块,这些模块很有可能是Python环境自带的,也有可能是其他组织编写的
    5. logging.basicConfig(level=logging.INFO)设置日志的级别,日志的作用是输出程序执行过程中产生的信息,这些信息有助于研发人员分析,诊断以及定位程序发生的问题。
    6. ifelse指令用于控制程序执行的路径

    由以上信息可以推断出,几乎所有Python程序都会包含多个.py文件,这些文件之间通过import来相互调用,你可以通过digwebs来确认这一点。每一个.py文件中均会使用Python的一些能力,比如定义一个类或函数,使用循环控制语句或者条件控制语句等等。正是这些文件和它们之间的调用关系构成了一个完整的Python程序。接下来,让我们看看这个完整的程序是如何工作的。

    Python程序的执行过程

    Python程序的执行过程有点类似于人类阅读文章的过程,人类的阅读习惯是从上到下,每读到一句话,就会理解这句话的内容。Python程序的执行过程也类似,解释器也会从上到下从输入的.py文件中读取和执行每一句指令,如果需要使用其它.py文件的功能,那么解释器会跳转到相关的指令处,然后接着从上到下依次读取和执行其它.py文件中的指令,直到把输入.py文件中的所有指令执行完才会退出。

    让我们根据之前出现的代码片段来分析整个执行过程,首先,在Terminal中输入这句指令python digwebs.py,并回车。

    Python解释器会读取digwebs.py中的指令,然后从上到下依次执行每一句指令,它先执行以下指令

    __author__ = 'SLZ'
    

    接着再执行以下指令来导入内置的日志库(也就是说digwebs.py依赖于logging库)

    import logging
    

    接着执行以下命令来设置日志的级别

    logging.basicConfig(level=logging.INFO)
    

    接着执行以下命令来导入其它模块(该模块由另外一个.py文件来定义)

    from www.web import digwebs_app
    

    接着执行以下命令来执行外部模块

    if __name__ == '__main__':
        digwebs_app.run(9999, host='0.0.0.0')
    else:
        wsgi_app = digwebs_app.get_wsgi_application()
    

    如果digwebs_app.run(9999, host='0.0.0.0')运行结束,那么解释器会继续往下执行,此时,没有其它指令,因此整个Python程序会结束运行。

    总结

    本文主要介绍了一个完整的Python程序和它的执行过程。一个Python程序均会有多个.py文件,每一个文件均会提供职责单一的功能,它们之间通过import来引用,并最终构成一个复杂的程序,而复杂程序的背后实际上是由基础的Python能力来构建的。接下来,让我们以Python的基础运算符开始,学习这些能力。