前言

1~17页

1、Python是一门强大的多范式计算机编程语言:即能面向过程,又能面向对象!

目前主流的编程范式有:命令式编程(Imperative programming)、函数式编程(Functional programming)、面向对象编程(Object-oriented programming)等。
什么是多范式编程语言,其中的“多范式”是什么意思? - 木头云的回答 - 知乎
https://www.zhihu.com/question/20428688/answer/115124557

2、本书让读者掌握Python的基本原理,本书是一个独立的、全方位的学习资源。

3、本书第5版已经更新Python的3.3和2.7发行版

这里的前沿部分讲述本书的目标、大纲以及结构。这个非常好

本书的“生态系统”

Python:流行的开源编程语言,应用于各领域的独立程序和脚本话应用。免费、可移植、功能强大,相对简单、使用起来充满乐趣。Python着眼于开发者的生产效率以及软件质量,无论项目大小,Python都将带来战略性优势。

本书目标,让读者全面了解Python,并能自如运用。

从创作之处,本书的定位就是一本强调核心Python语言本身的教程,而不是Python某一领域的特定应用。同样的,本书意图作为两卷书系列的第一本:
《Python学习手册》,就是本书,讲述Python本身,着眼于横跨多领域的语言基本原理。
《Python编程》,作为其他备选之一,会进一步向你展示在掌握Python后如何使用它。
这种工作任务的分配是有意义的。尽管使用目标可能因每个读者而不同,但是对有用的语言基本原理介绍则不变,聚焦于应用程序的书籍,如《Python编程》,会涵盖本书未涉及的内容,使用真实体量的示例来探索Python在常见领域(如Web、GUI、系统、数据库,以及文本处理)中充当的角色。此外,《Python袖珍指南》这本书提供了这里没有包含的参考资料,可以将其作为本书的补充。

刚才我查了一波出版社是否有其他入门好书,在豆瓣看到了这本书的书评,优点,详细全面,缺点,啰嗦。但是作为被薄书坑过的我来说,寻找这么一本厚重的书,找一找安全感!

使用Python的系统:Django、Numpy、App Engine
Django是一个开放源代码的Web应用框架,由Python写成。
Flask是一个小型而强大的Web框架(也称为“ 微框架”)
Jinja2是基于python的模板引擎
NumPy是用Python进行科学计算的基础软件包
Google App Engine for Python!通过App Engine,您可以使用Python编程网络应用程序

Digwebs-Web应用框架
Pylons-Web应用框架
Zope- 应用服务器
Plone- 内容管理系统
Django- 鼓励快速开发的Web应用框架
Uliweb- 国人开发的轻量级Web框架
TurboGears- 另一个Web应用快速开发框架
Twisted–Python的网络应用程序框架
Python Wikipedia Robot Framework- MediaWiki的机器人程序
MoinMoinWiki- Python写成的Wiki程序
flask- Python 微Web框架
tornado- 非阻塞式服务器
Webpy- Python 微Web框架
Bottle- Python 微Web框架
EVE- 网络游戏EVE大量使用Python进行开发
Reddit - 社交分享网站
Dropbox - 文件分享服务
TurboGears - 另一个Web应用快速开发框架
Fabric - 用于管理成百上千台Linux主机的程序库
Trac - 使用Python编写的BUG管理系统
Mailman - 使用Python编写的邮件列表软件
Mezzanine - 基于Django编写的内容管理系统
Blender - 以C与Python开发的开源3D绘图软件

Web Development: Django, Pyramid, Bottle, Tornado, Flask, web2py
GUI Development: tkInter, PyGObject, PyQt, PySide, Kivy, wxPython
Scientific and Numeric: SciPy, Pandas, IPython
Software Development: Buildbot, Trac, Roundup
System Administration: Ansible, Salt, OpenStack

https://www.python.org/about/apps/

Python 2.X 与 3.X 系列

3.0是Python的一次断代升级
· 采用了一种Unicode模型,对字符串、文件及库产生了广泛的影响
· 把迭代器和生成器提升为一个更加核心的角色,使他们成为更完整的函数式编程范式的一部分
· 强制使用新式类(new-style class)模型,将类(class)与类型(type)相合并,也让新式类模型变得更加强大和复杂
· 更改了许多基本工具与库,并对其中的一些进行了替换或移除

print从语句改称为函数。3.X无法运行2.X的代码。
但因为业内当时仍是2.X为主体,所以出现了与3.X并存,且数年不会消失。

当今Python 2.X/3.X 的故事

我当然是学习最新的,但是这部分提到,2.X是成熟,3.X是未来的观点,本想略过这章,但是这里提到了PyPy这个东西,于是查了下!

本书中提到当时PyPy只支持2.X,上面的例子也是2.X,但其实PyPy现在是支持3.X的

PyPy 为什么会比 CPython 还要快? - Meta的回答 - 知乎
https://www.zhihu.com/question/19588346/answer/213494135

这里要提到:静态、动态两个概念。
静态编译类型语言:将代码完全编译后执行
动态解释类型语言:边解释,边执行

而Python就是动态语言,而PyPy对其解构改进,变成了静态为主,partial evaluation机制的tracing JIT编译器。
简单地说,类似于cpu的记忆机制,忘了名次是什么了,就是当一个陌生的程序运行时,cpu会记录他的行为,这个程序运行多了,cpu就会记住他那些运行是有效输入输出,进而记录成有效步骤,并在下一次运行时直接运行该步骤而不是原原本本的完全允许程序。
PyPy的机制就和这个差不多,他会静态的编译Python代码,保存生成的二进制或有效代码结果,于是之后运行时,直接调用有效果成而略去复杂步骤,不用那么老实的挨个解释每一条语句或其背后的调用。

这个就如我第一次接触Java的时候,老师说Java是一种解释语言,我想那岂不会慢,我问老师,如果Java运行一次后,保存他的编译结果,那第二次岂不就快了…

当然cpu和PyPy的机制并非保存编译结果,而是保存了源代码的操作习惯和最终有效调用,就如拿到了最后阶段调用最底层的步骤的图纸而非编译成品。就例如生成了一个专门应对那个或那类代码的最终最简公式。

但是PyPy的下载速度好慢,届时我会上传到网盘:
pypy3.7-v7.3.3-win32.zip 2020.12.31 链接: https://pan.baidu.com/s/1sxprzNTauuZlpfDBv7LZfQ 提取码: zky7

测试结果:

https://www.jetbrains.com/research/devecosystem-2018/python/

jetbrains是著名的IDE公司,这是他最新的语言状况,此时3.X的使用率是2.X的三倍了(2.X 25% 3.X 75%)。
2016年 2.X 72% 3.X 40%
2017年 2.X 47% 3.X 53%
2018年 2.X 25% 3.X 75%

另外整理出python都用来做什么:
在这里插入图片描述
都用哪些库:
在这里插入图片描述

PyPy测试

import time
s=time.time()
for i in range(10000):
    list1=['e', 'k', 'b', 'g', 'd', 'o', 'p', 'h', 'i', 'm', 'l', 's', 'n', 'x', 'y', 't', 'j', 'r', 'z', 'a', 'u', 'v', 'w', 'q', 'c', 'f']
    site=len(list1)-1
    while 1:
        if site<1:break
        i=0
        while 1:
            if list1[i]>list1[i+1]:
                t=list1[i+1]
                list1[i+1]=list1[i]
                list1[i]=t
            i=i+1
            if i==site:break
        site=site-1
print(time.time()-s)
input()

测试方法,1W次冒泡发排序。

python F:\2019\Documents\python\1W冒泡.py
0.9464716911315918s
F:\2019\Documents\pypy3.7-v7.3.3-win32\pypy3.exe F:\2019\Documents\python\1W.py
0.04797101020812988

这里但看结果,无论是第一次还是之后,都是这么快的。
但是有一个问题就是目前我允许的Python 3.9是可以直接接受完整路径的,而PyPy不接受路径中出现中文。于是去掉了路径的中文。

不过这个都是代码运行方面。而Python还有个编译打包的功能,能将源码编译成可执行文件,之前操作过,但运行效果反而不佳,这个到之后书中提到再说。

另一个据说Python运行慢的原因,在于他是不定类型数据输入,专业术语叫啥忘了,总之他没有严格的输入类型和语法,于是使用简单,但是背后却是Python的严格数据类型筛选处理,这导致Python比Java慢,而有个工具能够优化这个步骤从而加速运行效果。

对 3.X 和 2.X 的介绍

本书不否认2.X的存在,在很多地方都将介绍两个版本都怎么使用。
不过对我自学者的我来说,如果2.X的方法存在启发,也会摘抄下来,不过多数不会摘抄2.X的内容。

我应该选择哪个Python

这里不多说了,总之如果真有需要学2.X的话,本书也完全能够胜任。

这里摘抄下对3.X的评价:

他清理了这门语言中长期存在的一些瑕疵,并修剪了一些陈旧的、不整齐的枝枝叶叶,同时保留了全部初始的核心思想,还添加了一些令人振奋的新工具。例如,3.X的无缝Unicode模型,以及对生成器和函数式编程技巧的更广泛使用,被许多用户视为一笔财富。

在这里插入图片描述
发布日期
2008
2000
函数打印
打印(“hello”)
打印“你好”
的整数
当两个整数被除时,就会得到一个浮点值
当两个整数被整除时,您总是提供整数值。
Unicode
在Python 3中,字符串的默认存储是Unicode。
要存储Unicode字符串值,您需要用“u”来定义它们。
语法
语法更简单,也更容易理解。
Python 2的语法比较难理解。
排序比较规则
在这个版本中,排序比较的规则被简化了。
排序比较的规则非常复杂。
迭代
引入了新的Range()函数来执行迭代。
在Python 2中,xrange()用于迭代。
异常
它应该用括号括起来。
它应该用符号括起来。
泄漏的变量
变量的值永远不变。
在for循环中使用全局变量时,它的值会发生变化。
向后兼容性
将python 2移植到python 3并不困难,但它永远都不可靠。
Python版本3与Python 2不向后兼容。
图书馆
最近许多开发人员正在创建只能在Python 3中使用的库。
许多为Python 2创建的旧库都不是向前兼容的。

本书的必备知识与意图

有很多人都会问,学习Python到底要花多少时间?尽管答案因人而异,但只要你开始阅读,就已经离完成不远了。
尽管本书足以满足基本的脚本变成目标,但那些希望将软件开发作为职业的读者应该计划在读完本书后,投入额外的时间到大型项目开发中。如果可能的话,投入额外的时间阅读本书的续集,如《Python编程》。本书讲授了语言的基本原理,而《Python编程》讲授了应用程序编写的基础知识。

本书的结构

每一部分涵盖这门语言的一个主要功能区
由若干章节组成
章节聚焦本功能区的特定主题,以习题结束
每一部分以大型习题结束

实践很重要:强烈推荐读者完成本书中的全部测试题和练习题。

本书的组织形式自底向上,越来越有挑战性,所以推荐顺序阅读。

第一部分:总览,为什么人们使用这门语言,他能做什么,主题思想、背景知识、运行方式等。

第二部分:内置对象类型如数字、列表、字典等,探索动态类型及其引用。

第三部分:语法类型、迭代

第四部分:将代码打包成函数,作用域、参数传递、时常为人不齿的lambda表达式等。回顾迭代器、引入生成器。计时测试性能。

第五部分:将语句和函数组织成模块

第六部分:面向对象编程工具——类,一种可选但是强大的组织代码以便定制和重用的方式。
在Python中,类是可选的,但是大部分人都觉得Python中OOP的简洁性远胜于其他语言,而且OOP还能够极大的削减开发时间,尤其对于长期的战略项目研发更为明显。

第七部分:异常、调试、测试、上下文管理器。

第八部分:Unicode与字节串、property、描述符的属性管理工具、函数装饰器、类装饰器以及元类,这些章都是选读的、因为不是所有程序员都需要了解它们所应对的课题。

第九部分:附录,多平台安装和使用。新功能、更改、练习题解答。

这本书不是什么

·这本书是一本教程,不是参考手册
·这本书介绍语言自身,而不介绍应用程序、标准库或第三方工具
·这本书以系统化的视角,审视一个庞大的主题,而不是一本流水账般的概览

他不是一本参考手册,也不是一本特定领域应用程序的指南

本书是一本编程语言教程,不是参考手册,也不是应用程序书籍:
现今的Python拥有内置类型、生成器、闭包、推导、Unicode、装饰器,以及过程式、面向对象及函数式编程范式的混合。

参考资源:《Python袖珍指南》、Python官方的标准参考手册

应用程序和库:《Python编程》,虽然本书中介绍了些库和工具,但并非本书的主要介绍内容。(timeit、shelve、pickle、struct、json、pdb、os、urllib、re、xml、random、PyDoc,以及IDLE)

他不是行色匆匆人们的一本快餐读物

完整而非简概,涵盖整个软件学原理,对于写出好的Python程序是必要的。

他以Python原本的方式顺序展开

由简至繁
·打印、排序、字符串format方法,以及一些依赖函数关键字参数的dict调用
·字典键列表与测试,以及许多工具周围使用的list调用,暗含有迭代的概念
·使用exec运行代码,现在假定你已经掌握文件对象与接口的相关知识
·编写新式的异常需要你掌握类和OOP的基本概念
·诸如此类——甚至基本的继承也引入了高级主题(如元类和描述符)

本书的程序

Jython - Java
IronPython - .NET
Stackless与PyPy在第二章讲述
而目前官方的Python其实是CPython

https://www.oreilly.com/library/view/learning-python-5th/9781449355722/
本书出版社地址,内有代码连接和勘误

致谢 @2013

作者使用和推广Python 20 余年,写作书籍18年,讲授课程16年

作者,受挫的C++软件开发人员,1992年接触Python,1995年,《Python编程》,1997年周游世界讲授Python,1999年《Python学习手册》…

由讲课的经验不断完善写作。

提到的一些作品:
创作过程像是美国电影《土拨鼠之日》,重复而快乐。
该片主要讲述了气象播报员菲尔,执行任务偶遇暴风雪后,停留在前一天却始终无法再前进一步,开始了他重复的人生的故事。
该片于1993年2月12日在美国上映

书籍《浅薄》The Shallows 你是互联网的奴隶还是主宰者
《The Shallows: What the Internet Is Doing to Our Brains》
作者:Nicholas Carr 尼古拉斯・卡尔
出版:W. W. Norton & Company
出版年:2010-06-07

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值