Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第五章: 从全局把握Python > 5.1节: Python程序的执行过程

5.1节: Python程序的执行过程

薯条老师 2020-04-18 16:49:14 242321 1

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一班最多10人,学员的平均就业薪资有11K。小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://www.chipscoco.com/?cate=6

5.1.1 在命令行中执行Python程序

在第四章的内容中介绍了Windows命令行和Linux命令行的基础知识,在将Python安装成功并添加至环境变量中以后,可以直接在命令行中执行Python程序。
CentOS8中内置了python3的解释器,无需再进行安装。CentOS8内置的Python解释器,其版本为3.6.8
在命令行中执行python3命令,可以进入python的交互模式,在交互模式中执行exit()函数,可以退出交互模式。
笔者的教学环境为windows10系统,读者不需要担心Python程序在各平台的移植性,跨平台是Python语言的重要特性之一,在windows系统中编写的Python程序可以直接在Linux中运行。现在请读者参照以下步骤,在命令行中执行Python程序:
(1) 进入python3-learning目录,创建hellopython.py
进入D盘的python3-learning目录,并在该目录下创建hellopython.py文件。程序中的代码很简单,仅有一行:
print("hello python")

print是Python中的内置函数,用于将值进行输出。

(2) 进入命令行,切换到D盘的python3-learning目录
对windows命令行的基础知识还不熟悉的同学们,可以先回顾下第四章中的学习内容。

(3) 在命令行中执行hellopython.py

直接在windows命令行中执行python hellopython.py:

image.png

从程序的输出可知,python解释器成功地执行了脚本程序hellopython.py,并将内容输出到了屏幕中。

5.1.2 Python文件是文本文件

我们在上节中编写的hellopython.py, 它是一个文本文件。所谓的文本文件,是指由文本字符所组成的文件。

计算机中的文件主要分为文本文件和二进制文件,在文本文件中存储的是文本字符,二进制文件中直接存储的是信息的二进制形式,图片,音视频文件就是一种二进制文件。直接用记事本等文本编辑器打开二进制文件时,会看到一堆乱码。英文字母,汉字等是我们经常使用的字符,人类可以理解字符,但计算机无法理解字符。计算机只能识别二进制,为了让计算机也能识别字符,我们需要对字符使用数字进行编码,然后将数字编码转换为对应的二进制。

以hellopython.py为例,我们看到的内容是:

print("hello python")

但计算机“看到”的内容却是:

\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u0068\u0065\u006c\u006c\u006f\u0020\u0070\u0079\u0074\u0068\u006f\u006e\u0022\u0029
\u前缀表示按照unicode编码的方式进行编码,\u后面的数字表示字符所对应的十六进制编码。
例如字符p所对应的unicode编码为\u0070,0070是一个十六进制,其转换后的十进制为:

1588231681(1).jpg

十六进制70转换后的二进制为:
01110000
对进制的概念和转换不是很熟悉的同学,可以先复习下3.1节中的学习内容。

相对于十进制来说,十六进制更容易转换为二进制,1个十六进制对应4个二进制位。在四位二进制中,从最高位到最低位,每位为1时,分别对应于十六进制中的8,4,2,1。

换算为对应的十六进制,直接相加即可,例如1111,直接相加后的结果为:8+4+2+1=15,转换后的十六进制为F。
十六进制7(4+2+1),其对应的二进制,即为0111,十六进制0对应的二进制为0000。
十六进制70对应的二进制即为01110000。
计算机最终“看到”的内容是一堆二进制编码:
01110000011100100110100101101110011101000010100000100010011010000110010101101100011011000110111100100000011100000111100101110100011010000110111101101110001000100010100100001010
在上文的二进制内容中,以1个字节作为一组,1个字节包含8个二进制位。感兴趣的读者可以自行将字符的十六进制转换为对应的二进制。

5.1.3 Python是一种解释型语言

Python是一种解释型语言,在执行Python程序时,Python会先将脚本文件中的内容全部转译为Python字节码,然后再线性地,从上到下,逐条地解释执行字节码指令。

此时的字节码还不是机器指令,python解释器在对字节码进行解释执行的过程中,每条字节码指令最终都要被转译成机器指令,即二进制指令,这样才能在计算机中运行。

5.1.4 Python程序的执行过程

Python程序中的指令和数据最终都会被加载到内存中,然后cpu再从内存中读取并执行Python字节码转译后的机器指令。hellopython.py文件中的代码
print("hello python")
代码中的print函数会被转译为机器指令,而代码中的"hello python"是程序中的数据。
举个很简单的例子,假设print函数最终被转译后的机器指令为A和B。A指令负责从内存中读取数据,这里读取的程序数据为:"hello python"。A指令执行完毕以后,数据被加载到CPU中的寄存器当中。
B指令负责将寄存器中的数据"hello python"再写入到输出设备,B指令执行完毕以后,我们最终在屏幕中看到了程序的输出:

image.png

5.1.5 最具实力的Python小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:

扫码领学习资料.jpg


已有1位薯条发表了看法:

  • haoxu

    haoxu  评论于 2022-06-23 17:47:02  回复

    在命令行中执行hellopython.py后会直接跳转到pycharm

欢迎 发表评论: