Python学习手册(第4版).1

装饰器就是一个给对象添加额外功能的函数,其本质是函数。它的基本构造:高阶函数+函数嵌套+闭包。

装饰器 即在代码运行期间动态增加功能的方式。

3大条件:

1. 函数可作为对象,赋值给变量,也就是函数可以作为参数,也可以作为返回值。

2. 闭包,函数内部可以嵌套函数,可分为外函数和内函数。内函数可以运用外函数的临时变量,并且外函数的返回值是内函数的引用,就形成一个闭包。

3. 高阶函数,即函数式编程,条件也是第1条。

说到脚本语言和静态语言,首先要思考:如何将人类编写的程序(源代码)变成机器能执行的目标代码呢?这涉及到程序执行的两种方式:编译和解释。

编译是指将源代码一次性转换成目标代码的过程,也就是将人类编写的代码转成了计算机可执行的语言。

解释是指将源代码逐条转换成目标代码,并且同时逐条的运行。

编译相当于一次性的翻译源代码,编译之后就不再需要源代码了。而解释每次都需要源代码,再将源代码转成目标代码,机器才能执行。

现在回归主题。根据执行方式(编译、解释)的不同,编程语言分为两类,即静态语言和脚本语言。静态语言是使用编译执行的编程语言,如C语言、C++、Java语言。脚本语言则是使用解释执行的编程语言,如Python、JavaScript、PHP语言。

静态语言和脚本语言除了执行方式不同外,优势也不同。静态语言一次性生成目标代码,优化更充分,程序运行速度更快。脚本语言每一次执行都需要源代码,因此维护更灵活,也因为保留了源代码,它可以跨多个操作系统平台。

我知道这些都是从北理嵩老师课上记下来的。

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。

脚本语言是为了缩短传统的 编写- 编译- 链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。它的命名起源于一个脚本“screenplay”,每次运行都会使 对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。

一个脚本通常是解释执行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中.

Python标准的pickle模块提供了一个简单的对象持久化系统:它能够让程序轻松地将整个Python对象保存和恢复到文件和文件类的对象中。

NumPy系统是Python的一种开源的数字扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。

Python语言的改变必须遵循一套规范的有约束力的程序(称作PEP流程),并需要经过规范的测试系统和BDFL进行彻底检查。值得庆幸的是,正是这样使得Python相对于其他语言可以保守地持续改进。

自从PHP出来声称自己是世界上最好的编程语言后,其它语言之间的战争就已经停止了,因为只要遇到不可解决的矛盾,我们都会把矛头指向那个全民公敌PHP。从这个层面来看,PHP确实配得上这个称号。牺牲自我,造福大众。

再者,就像数学一样,其设计也具有正交性(orthogonal),也就是这门语言大多数组成部分都遵循一小组核心概念。2020-08-04

解释器是代码与机器的计算机硬件之间的软件逻辑层。

IDLE是开发 python 程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择。当安装好python以后,IDLE就自动安装好了,不需要另外去找。

.pyc”就是编译过的“.py”源代码

python的执行过程:

将.py的源代码编译成.pyc的字节码

然后又python虚拟机执行字节码文件。

如果源代码没改动,直接执行对应的字节码,提高速度。

Python虚拟机(Python Virtual Machine,简写为PVM)

PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。

每次编写(或修改)完 C# 代码,Unity 会花几十秒甚至很多的时间进行编译,等待编译完成的过程,我除了熟练咒骂破电脑以外,也理解了岁月静好是什么意思。

通过从网络上获得的一些第三方工具,将Python程序转为可执行程序(在Python世界中称作冻结二进制文件,Frozen Binary)是有可能的。

当在交换模式下输入两行或多行的复合语句时,提示符会发生变化。在简单的shell窗口界面中,交互提示符会在第二行及后边的行由>>>变成...;在IDLE界面中,第一行之后的行会被自动缩进。

在交互提示模式中,注意像结束for循环和if测试那样,用一个空行结束多行复合语句。必须两次按下Enter键,来结束整个多行语句,然后让其运行。

为何两次?因为你得告诉python什么时候多行语句输入结束,开始执行。否则,python以为你要输入下一行。

为了能够永久的保存程序,需要在文件中写入代码,这样的文件通常叫做模块。模块是一个包含了Python语句的简单文本文件。一旦编写完成,可以让Python解释器多次运行这样的文件中的语句,并且可以以多种方式去运行:通过系统命令行、通过点击图标、通过在IDLE用户界面中选择等方式。无论它是如何运行的,每一次当你运行模块文件时,Python都会从头至尾地执行模块文件中的每一条代码。

在系统提示模式下使用文件扩展名,但是在导入时别使用文件扩展名。

它们的第一行是特定的。脚本的第一行往往以字符# !开始(常常叫做“hash bang”),其后紧跟着机器Python解释器的路径。

硬编码Python解释器的路径

这句话指的是写Python的绝对路径/usr/local/bin/Python而不是像下文那样用/usr/bin/env去搜索

,而可以在文件特定的第一行注释中像这样写:

#!/usr/bin/env python

...script goes here...

当这样编写代码的时候,env程序可以通过系统的搜索路径的设置(例如,在绝大多数的UNIX Shell中,通过搜索PATH环境变量中的罗列出的所有目录)定位Python解释器。这种方法可以使代码更具可移植性,因为没有必要在所有的代码中的第一行都硬编码Python的安装路径。

假设在任何地方都能够使用env,无论Python安装在了系统的什么地方,你的脚本都可以照样运行:跨平台工作时所需要做的仅仅是改变PATH环境变量,而不是脚本中的第一行。当然,这是env在任何系统中都是相同的路径的前提下(有些机器,还有可能在/sbin、/bin或其他地方);如果不是的话,这种可移植性也就无从谈起了。

(multipurpose Internet mail extensions,多用途互联网邮件扩展类型),是设定某种扩展名的文件用一种应用程序来打开的方式类型

(0)

相关推荐

  • PyPy为什么能让Python比C还快?一文了解内在机制

    来自|机器之心 「如果想让代码运行得更快,您应该使用 PyPy.」 - Python 之父 Guido van Rossum 对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要.Python ...

  • Python解释器分为哪几类?

    众所周知,Python是一门解释器语言,代码想要运行,必须通过解释器来执行;而且Python拥有多种解释器,每个解释器有不同的特点,接下来我们一起来了解一下Python解释器的分类及安装,希望对你们有 ...

  • 动态语言 静态语言 编译型语言 解释型语言

    ... 造成这种差异和误解的根本原因是JAVA是一门静态语言,而Python是一门动态语言.而恰好,JAVA又是一门编译型的语言,而Python是一个用解释器执行的解释型语言.于是有人告诉我,编译型语 ...

  • python 无头模式

    1.1.1 Python来源(了解) Python翻译成汉语是蟒蛇的意思,并且Python的logo也是两条缠绕在一起的蟒蛇的样子,然而Python语言和蟒蛇实际上并没有一毛钱关系. Python语言 ...

  • 编译型语言和解释型语言的区别

    我们编写的源代码是人类语言,我们自己能够轻松理解:但是对于计算机硬件(CPU),源代码就是天书,根本无法执行,计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代码转换成二进制指令. 所谓 ...

  • Python 学习手册第 4 版(附下载)

    如果有人问学习Python有什么书籍可以推荐,那么<Python 学习手册>再合适不过了.这本书的豆瓣评分高达 7.9 .非常适合初学者. 书籍简介 Python是一种简单的.解释型的.交 ...

  • Python学习手册(第4版).3

    建议:如果想要在IDLE的主窗口中重复前一条命令,可以使用Alt-P组合键回滚,找到命令行的历史记录,并用Alt-N向前寻找(在Mac上,可以试试使用Ctrl-P和Ctrl-N).之前的命令可以重新调 ...

  • Python学习手册(第4版).2

    先说坑,看懂为什么前面那么多没有运行出来吗? 这个是一段代码 原因很简单,这个代码是在缓存区呢,得Ctrl+S 平时是这样运行,其实代码直接从缓存区到右边得执行区.文本文件并不保存 重定向也正常~ 在 ...

  • Python学习手册(第4版).5

    map是对原数组的加工,filter对原数组的过滤.用法相同接受一个函数和列表. 括号中的解析语法也可以用来创建产生所需结果的生成器(例如,内置的sum函数,按一种顺序汇总各项): >>& ...

  • Python学习手册(第4版).4

    要表示字符串 Bob said "I'm OK". 由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又 ...

  • 听歌学地理 地理歌曲第四课《地形学习手册》版《青春修炼手册》

    听歌学地理 地理歌曲第四课《地形学习手册》版《青春修炼手册》

  • 新修订!《企业员工反三违手册(2021版)》,推荐学习!

    重要提醒 所有资料均有配套原版文件 扫描文末底部二维码入群可获取 点击链接: 实用!全10册<安全知识手册汇编>直接打印.直接用! [全套]2021安全生产月宣传视频.海报.手册.培训! ...

  • 可悲,副主任违章作业0.1秒当场死亡!《企业员工反三违手册(2020版)》,推荐学习!

    ▼ ABC安全防失联号-急事大观 培训大典 预案大典 制度大典 楼上的按钮里干货不一般,最少成百甚至上千! 正文 ▼    点击链接获取: 800+安全资料免费无条件领取! 1000+安全视频快速查询 ...

  • 最新《企业员工反三违手册(2020版)》,推荐学习!

    重要提醒 所有资料均有配套原版文件 扫描文末底部二维码入群可获取 违章操作等于自杀, 违章指挥等于杀人, 违章不纠等于帮凶, 在岗一分钟, 安全六十秒! 在工作之前一定要三问: 一是:问问自己这样做安 ...