教程引言:

系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构。一步步地帮助你从入门到就业。

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:

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

5.1.2 Python文件是文本文件

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

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

以hellopython.py为例,我们看到的内容是:
print("hello python")
但计算机“看到”的内容却是:

u0070u0072u0069u006eu0074u0028u0022u0068u0065u006cu006cu006fu0020u0070u0079u0074u0068u006fu006eu0022u0029

u前缀表示按照unicode编码的方式进行编码,u后面的数字表示字符所对应的十六进制编码。

例如字符p所对应的unicode编码为u0070,0070是一个十六进制,其转换后的十进制为:

十六进制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指令执行完毕以后,我们最终在屏幕中看到了程序的输出:

5.1.5 课后习题

(1) 如何在命令行中执行python脚本?
(2) python程序的源代码文件为文本文件,既然计算机只能识别二进制,那么为什么不直接以二进制的形式来编写程序?
(3) 如何理解python语言是一种解释型的编程语言?
(4) 总结python程序在计算机中的执行过程。

跟薯条老师一起学Python​chipscoco.com

Python零基础入门指南​chipscoco.com

精通Python面向对象编程​chipscoco.com

轻松学会Django-django入门实战教程​chipscoco.com

python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程相关推荐

  1. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  2. python做动画视频教程_Python零基础入门动画教程

    课程答疑: QQ群:913293727 适用人群 在校大学生/应届毕业生/业余编程爱好者/初.中开发学习者/大中专院校师生/数据分析人员/技术支持/测试人员 课程概述--课程大纲-- 1.Python ...

  3. python 类和对象_Python零基础入门学习33:类与面向对象编程:类的继承

    注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文字数约1300,阅读时间约为3分钟. Python面向对象编程 类的继承机制 如果一个类A继承自另一个类B,就把继承者类A称 ...

  4. python中的变量是动态类型的什么意思_Python零基础入门(一):对Python的简单认识...

    点击蓝字 关注浅韵 一起划水 写在前面 期末考试告一段落之后,这个公众号又活了. 漫长的假期,想玩也是肯定的,但是发现自己想学的东西也很多,想写的东西也很多,所以给自己来了一个假期整活计划. 在这个假 ...

  5. python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python

    教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...

  6. python三种数据类型_Python零基础入门学习02:Python基本数据类型:数字类型

    注 :本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. Python学习 Python有三种不同的数字类型:整数(int),浮点数(float)和复数(complex). 值得注意的 ...

  7. python怎么生成伪代码_Python零基础入门—算法的实现与伪代码

    同学们好.在前面一节课,我们了什么是算法,知道了在一个算法中,要有输入.计算过程.还要有输出.这节课我们来讨论算法的实现. 这节课的内容与前面课程的课后练习有关.在课后练习中要求同学们写出计算长方形面 ...

  8. python初学小甲鱼_Python零基础入门学习 作者:小甲鱼

    temp = input('不妨想一想小甲鱼现在心里想的哪一个数字:') guess = int(temp) if guess == 8: print('你是小甲鱼心里的蛔虫吗?') print('哼 ...

  9. 2021最强Python学习教程,从零基础入门到精通

    关于本套Python自学视频教程:B站链接:戳我直达 千锤百炼,只为大作:精益求精,处处斟酌:这种教程,看一眼就倾心. 你准备好了吗 文章目录 你准备好了吗 前言 01.python由来与发展介绍 0 ...

最新文章

  1. Swift 值类型和引用类型的内存管理
  2. vue 去除路由时候的#
  3. 如何看懂发电机功率圆图
  4. 机器学习导论�_机器学习导论
  5. 【CodeForces - 1082B】Vova and Trophies (贪心模拟,暴力)
  6. 49 SD配置-定价配置-定义条件类型
  7. java hung_java – Hung JVM消耗100%的CPU
  8. Linux 查看命令
  9. 基于模板的通用代码生成器LKGenerator(四)-核心技术之各种数据库查询表信息sql整理...
  10. linux中id命令的功能,linux中的id命令
  11. 飞秋mac版字符乱码_Mac版QQ的OCR文字识别功能究竟有多好用?
  12. 【系统分析师之路】第九章 软件工程(上)
  13. redis 集群scan
  14. CF1060F Shrinking Tree
  15. 感谢老师,更感谢自己
  16. Outlook客户端解析Html类型邮件样式问题
  17. 想装吗?看看装B大全
  18. 保护眼睛的颜色的各种色值,强力推荐!
  19. 高效查询快递物流信息
  20. 代码质量管理工具SonarQube详解

热门文章

  1. ADPRL - 近似动态规划和强化学习 - Note 7 - Approximate Dynamic Programming
  2. Blender3.0电影级别CG场景制作视频教程
  3. Clion 远程开发 配置
  4. Java课程寒假之开发记账本软件(网页版)之二
  5. P1132 数字生成游戏
  6. GIL+死锁与递归锁+信号量+event事件
  7. Oracle数据库一些操作信息
  8. [UT]Unit Test理解
  9. android蓝牙4.0(BLE)开发之ibeacon初步
  10. 批处理命令——goto 和 :