《python学习手册》自学(1)

开始

  • 主要就是总结我在学习这本1400多页的书时的知识,感觉发发博客既可以督促自己的学习,也许也可以让人挑挑刺。。。但愿我不会半途而废吧。
  • 由于这书前面就是叨叨叨介绍python这门语言的啥啥啥。我打算每篇文章的后面附上这部分的英文原版,然后自己翻译试试吧,,,也能学学英语不是。

第二章 python如何运行程序

本章就是学习python解释器通常如何执行程序的,还是理论性东西比较多。。。。感觉没啥用

python解释器简介

python也是一个名为解释器的软件包,解释器就是一种让其他程序运行起来的程序

程序执行

程序员视角:就是写一个python语句的文本文件,在让python去执行这个文件(还能怎样)
python视角:运行写的脚本,第一步就是编译成字节码,然后转发到‘虚拟机’中。(1)字节码编译,执行程序时,先将源代码编译,字节码可以提高执行速度。python会将字节码保存在一个以 .pyc 为扩展名的文件,储存在__pycache__的子目录里,字节码只会针对那些被导入(import)的文件而生成,文件仅在程序运行时才会被导入,交互式命令行中输入的命令时不会生成字节码的。 (2)python虚拟机(PVM) 编译成功后,就会发送到(Python Virtual Machine)虚拟机的程序上执行。
性能的含义:在python的工作中没有构建或make的步骤,代码写好后立刻执行。另外,字节码不是二机制的机器码,所以运行的比C C++慢(涨知识了)
开发的含义:python其开发和执行的环境是同一个系统,这就能大大的缩短开发周期。。。。。。

python的各种实现

主要有五种实现方式———CPython,Jython,IronPython,Stackless,PyPy。尽管这些实现方式相互影响,但他们每一个都是独立安装的软件系统。所有的这些都是用来实现python语言的,只是通过不同的形式执行程序而已。(虽然我看不懂,但张张知识也行吧。。)

CPython:标准python

最初的,标准的python实现方式,以ANSI C语言代码编写出的。除非你想使用python脚本化Java和。NET应用,或利用Stackless和PyPy的编译优势,否则用Cpython就行了,他是这门语言的标准参照实现,运行速度最快,最完整,最新最健全。

Jython:基于Java的python

Jython系统是一种python语言的可选实现方式,其目的是与Java编程语言集成。其包含Java类,可以将源代码编译成Java字节码,并在Java的虚拟机上使用。Jython的目标是让python代码能够脚本化Java应用程序。Jython的脚本可以应用于开发Webapplet和servlet(就是程序),构建基于java的GUI等。

IronPython:基于.NET的Python

目的是让python程序可以与Windows平台上的.NET框架以及与之对应的Linux上开源的Mono编写成的应用相集成。(啥玩意。。)

Stackless:注重并发的python

(看不懂就附上原文吧)注重发的 Python还有一些其他的方案可以用来运行 Python程序,它们具有更加专注的目标。例如, Stackless Python系统是标准 CPython针对并发性而优化的一个增强版实现,因为 Stackless Python不会在C语言调用栈上保存状态,这使得 Python更容易移植到较小的栈架构中,提供了更高效的多处理选项,并且促进了像协程( coroutine)这样的新颖的编程结构的出现。在 Stackless为 Python带来的所有优化中,微线程是 Python原生多线程工具的一个更高效和更轻量的替代品。微线程带来了更好的程序结构、更可读的代码以及更强的开发效率“EVE在线”的创建者CCP游戏公司就是 Stackless Python的忠实用户,它也是 Python最成功的业界案例之一。详情参见htp:/ stackless. com。

PyPy:注重速度的python

pypy系统是CPython标准的另一个实现,更加注重性能。提供一个带有即时编译器(JIT)的快速实现,即时编译器是PVM的一个扩展,将字节码的部分在程序运行的时候转换成更块的二机制机器码,还能通过追踪程序中的对象数据类型,创建针对python语言动态特性的机器代码。让程序跑的更快,另外一些代码还会占用更少的内存。也就比CPython3.X快个100倍左右,也能对内存空间进行优化。

原文:这些系统并不是你现阶段学习 Python的必备知识,但是简要地了解它们在执行模型中所处的位置能够帮助你揭开执行模型的神秘面纱。下面的执行优化工具,冻结二进制文件我简单看了一下,看不懂就是了。有兴趣的朋友自己去看书吧。。。

习题

  1. 什么是python解释器:就是运行你所编写的python程序的程序。
  2. 什么是源代码:就是为程序写的语句,有文本文件中的文本组成,以.py作为后缀名
  3. 什么是字节码:就是将程序编译后得到的低级形式,.pyc后缀名
  4. 什么是PVM:python虚拟机,是python运行时的引擎,能编译得到的字节码。
  5. 列举两个或多个python标准执行模型的变体的名字:Psyco/Shed Skin 冻结二机制文件
  6. cpython jython ironpython有什么区别:cpython时语言的标准实现,jython和ironpython是在jave和.NET环境中的实现,都是python的替代编译器。
  7. 什么是Stackless and PyPy:Stackless是一种针对并发性而增强的python版本,PyPy是针对速度增强的python实现。

第三章终于要开始编写程序了。。。。。

最后是原文翻译:
在这里插入图片描述
在这里插入图片描述
吐了吐了。。。。。

发布了25 篇原创文章 · 获赞 0 · 访问量 309

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/104780035