Loading

Python语言概述 和 编译型语言与解释型语言


Python创始人吉多·范罗苏姆(Guido van Rossum)
Python创始人吉多·范罗苏姆(Guido van Rossum)
Python的设计哲学:优雅、简单、明确


1.1 Python简介


Python是一种面向对象、解释型、弱类型的脚本语言。是基于ABC教学语言

(ABC语言是专门为非专业程序员设计,是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果)

解释型语言几乎是天然跨平台的

Java占据了世界上绝大部分电商、金融、通信等服务端应用开发
C/C++占据了世界上绝大部分的贴近操作系统的硬件编程

缺点

速度慢:Python程序比Java、C、C++等程序的运行效率都要慢

源代码加密困难:不像编译型语言的源程序会被编译成目标程序,Python直接运行源代码,因此对源代码加密比较困难


2.1、 Python程序运行机制


计算机程序,其实就是一组计算机指令集能真正驱动机器运行的是机器指令

高级语言按程序的执行方式可以分为编译型解释型两种

  • 编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码和一次性 “翻译” 成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(compile)

    因为一次性 “翻译” 成机器码,编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行,所以通常运行效率较高。

    注意:

    因为编译型语言的程序被编译成特定平台上的机器码,因此编译生成的可执行程序通常无法移植到其他平台上运行!

    如果需要移植,则必须将源代码复制到特定的平台上,采用特定平台上的编译器【重新编译】!

    C/C++、Objective-C、Pascal等高级语言都属于编译型语言
    编译型语言原理图

  • 解释型语言是指使用专门的解释器对源程序逐行解释特定平台的机器码,并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。

    注意:

    每次执行解释型语言的程序都需要进行一次编译,所以效率通常较低,而且不能脱离解释器独立运行
    优点:跨平台容易,只需要提供特定平台的解释器即可,每个特定平台上的解释器都负责将源程序解释成特定平台的机器指令,解释型语言可以方便地实现源程序级的移植,但是这是以牺牲程序执行效率为代价的。

    Python属于解释型语言
    解释型语言原理图

扩展:
还有一种伪编译型语言,它属于半编译型语言,
如Visual Basic,它属于半编译型语言,并不是真正的编译型语言。
他首先被编译成    P-代码 ,并将解释引擎封装在可执行程序内,当运行程序时,P-代码    会被解析成真正的二进制代码。
从表面上看,Visual Basic 可以编译生成可以执行的EXE文件,而且这个EXE文件也可以脱离开发环境,在特定平台上运行。
实际上,在这个EXE文件中,既有程序的启动代码,也有链接解释程序的代码,而这部分代码负责启动Visual Basic 解释程序,再对Visual Basic代码进行解释并执行。

Python优点:
1、简单、易学
2、免费、开源
3、面向对象
4、丰富的库
5、可扩展性
如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们
7、……

Python 的解释器

 # 使用 python 2.x 解释器
 $ python xxx.py
 # 使用 python 3.x 解释器
 $ python3 xxx.py

其他解释器(知道)

Python 的解释器 如今有多个语言的实现,包括:

CPython —— 官方版本的 C 语言实现
Jython —— 可以运行在 Java 平台
IronPython —— 可以运行在 .NET 和 Mono 平台
PyPy —— Python 实现的,支持 JIT 即时编译


3.1、其他知道

Pyc 文件(了解)
C 是 compiled 编译过 的意思

  • 操作步骤
    1、浏览程序目录会发现一个 pycache 的目录
    2、目录下会有一个 hm_10_分隔线模块.cpython-35.pyc 文件,cpython-35 表示 Python 解释器的版本
    3、这个 pyc 文件是由 Python 解释器将 模块的源码 转换为 字节码
    Python 这样保存 字节码 是作为一种启动 速度的优化

  • 字节码
    1、Python 在解释源程序时是分成两个步骤的
    首先处理源代码,编译 生成一个二进制 字节码
    再对 字节码 进行处理,才会生成 CPU 能够识别的 机器码
    2、有了模块的字节码文件之后,下一次运行程序时,如果在 上次保存字节码之后 没有修改过源代码,Python 将会加载 .pyc 文件并跳过编译这个步骤
    3、当 Python 重编译时,它会自动检查源文件和字节码文件的时间戳
    4、如果你又修改了源代码,下次程序运行时,字节码将自动重新创建


IPython:

  • IPython 中 的 “I” 代表 交互 interactive
    特点:

  • IPython 是一个 python 的 交互式 shell,比默认的 python shell 好用得多

    • 支持自动补全
    • 自动缩进
    • 支持 bash shell 命令
    • 内置了许多很有用的功能和函数
  • IPython 是基于 BSD 开源的

版本:

  • Python 2.x 使用的解释器是 ipython
  • Python 3.x 使用的解释器是 ipython3
  • 要退出解释器可以有以下两种方式:
    1> 直接输入 exit()
    In [1]: exit()
    2> 使用热键退出
    在 IPython 解释器中,按热键 ctrl + d,IPython 会询问是否退出解释器

IPython 的安装:

  • $ sudo apt install ipython

Python项目命名规则:

  • 命名文件名时建议使用小写字母、数字、下划线,不能以数字开始

4.1、关于代码规范


任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步


posted @ 2021-03-27 14:21  言非  阅读(1036)  评论(0编辑  收藏  举报