Python 3.5从零开始学(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-15 10:55:25

点击下载

作者:刘宇宙

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Python 3.5从零开始学

Python 3.5从零开始学试读:

前言

什么是Python,你为什么要使用它?

Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。这里有很多术语,你可以在阅读本书的过程中逐渐弄懂。

Python是一种使你在编程时能够保持自己风格的程序设计语,使用它你可以使用清晰易懂的程序来实现你想要的功能。并且如果你之前没有任何编程经历,那么既简单又强大的Python就是你入门的完美选择。

伴随着云计算、大数据等技术的迅速崛起,市场对Python人才的需求和市场人才的匮乏,让长期沉默的Python语言一下子备受众人的关注,本书可说是应运而生,另外,目前Python广泛使用的是2.7版本,新版本Python 3.5带来了很多新特性,本书是以Python 3.5版本编写而成的,对于想学习和了解Python 3.5的使用和特性的读者,本书可以说是最佳选择。本书的特色

本书专门针对Python新手量身定做,是编者学习和使用Python开发过程中的体会和经验总结,涵盖了实际开发中所有的重要知识点,内容详尽,代码可读性及可操作性强。

本书主要介绍了Python语言的类型和对象、操作符和表达式、编程结构和控制流、函数、序列、多线程、正则表达式、面向对象编程、文件操作、网络编程、邮件收发、数据库操作等,并安排了Python爬虫、数据处理项目范例,各章还安排了调试、问题解答、温故知、牛九小试等章节实例等内容,以帮助读者学会处理程序异常、解答学习困惑、巩固知识、学以致用。

本书的另一个特色是,使用通俗易懂的描述和丰富的示例代码,并结合日常生活中的一些小事件,使本书读起来尽可能生动有趣,让复杂的问题以简单的形式展现出来,使读者学来轻松,充分感受到学习Python的乐趣和魅力。本书的内容

本书共分18章,各章内容安排如下:

第1章主要介绍Python的起源、应用场合、前景以及Python 3相对于Python 2的一些新特性。

第2章主要介绍Python的基础知识,为后续章节学习相关内容做铺垫。

第3章将重点介绍列表和元组。

第4章将重点介绍字符串的格式化、分割、搜索等方法。

第5章将介绍字典,字典是一种通过名字引用值的数据结构。

第6章从import语句开始介绍,然后逐步深入介绍条件语句、循环语句以及列表推导式等一些更深层次的语句。

第7章主要介绍函数,函数是组织好的、可重复使用的,用来实现单一或相关联功能的代码段。

第8章主要介绍Python面向对象编程的特性,Python从设计之初就是一门面向对象语言,它提供一些语言特性支持面向对象编程。

第9章将带领读者学习如何处理各种异常,以及创建和自定义异常。

第10章将具体讲解Python中日期和时间的使用。

第11章主要介绍正则表达式的基本使用。

第12章主要介绍如何使用Python在硬盘上创建、读取和保存文件。

第13章主要介绍Python中的多线程编程。

第14章主要介绍如何使用Python语言发送和接收邮件。

第15章将重点介绍Python在网络编程方面的特性。

第16章将重点介绍在Python 3.5中使用PyMySQL连接数据库,并实现简单的增、删、改、查。

第17章将根据前面所学讲解一个爬虫的实战项目。

第18章将结合大数据的相关思维,使用已有数据做一些简单的数据分析。读者对象

Python 3.x初学者。

想学习和了解Python的程序员。

Python网课、培训及大专院校教学用书。致谢

在本书交稿之际,感谢清华大学出版社的王金柱编辑,在本书编写的过程中,王编辑给予了很多指导和修改意见。同时感谢家人和朋友在写作期间给予的安静写作环境,让笔者不被更多琐事打扰,从而专心于写作。感谢你们,没有你们的帮助与关心,本书不能如期完成。技术群及问题解答方式

Python技术服务qq群:634027520

CSDN技术博客:youzhouliu

技术问答email:jxgzyuzhouliu@163.com编者2017年3月第1章进入Python 3.5的精彩世界

本章主要介绍Python的起源、应用场合、前景以及Python 3相对于Python 2的一些新特性。另外,还将介绍Python的环境构建,然后以一个简单的小程序hello word开启Python的编程之旅。1.1 Python的起源

Python的创始人为Guido van Rossum(后文简称Guido)。1982年,Guido从阿姆斯特丹大学获得数学和计算机硕士学位。尽管Guido算得上是一位数学家,不过他更享受计算机带来的乐趣。用Guido的话说,尽管他拥有数学和计算机双料资质,不过他趋向于做计算机相关的工作,并热衷于做所有和编程相关的活儿。

Guido接触并使用过Pascal、C、Fortran等语言。这些语言的基本设计原则是让机器运行得更快。在20世纪80年代,虽然IBM和苹果已经掀起了个人电脑浪潮,但是那时候个人电脑的配置很低,比如早期的Macintosh只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存,因此所有编译器的核心都是做优化,以便让程序能够运行。为了提高效率,程序员不得不像计算机一样思考,以便写出更符合机器口味的程序,在那个时代,程序员恨不得榨取计算机每一寸的能力,有人甚至认为C语言的指针是在浪费内存。至于动态类型、内存自动管理、面向对象等就不要想了,这些只会让你的电脑陷入瘫痪。

这种编程方式让Guido感到苦恼。虽然Guido知道如何用C语言写出一个功能,但整个编写过程却需要耗费大量时间。Guido还可以选择Shell,Bourne Shell作为UNIX系统的解释器已经存在很久了。UNIX的管理员常常用Shell写一些简单的脚本,以进行系统维护的工作,比如定期备份、文件系统管理等。在C语言中,许多上百行的程序在Shell中只用几行就可以完成。然而,Shell的本质是调用命令,它不是一个真正的语言,比如shell没有数值型的数据类型,运用加法运算都很复杂。总之,Shell不能全面调动计算机的功能。

Guido希望有一种语言能够像C语言一样全面调用计算机的功能接口,又可以像Shell一样轻松编程。ABC语言让Guido看到了希望,该语言是由荷兰的数学和计算机研究所开发的,Guido曾经在该研究所工作,并参与了ABC语言的开发。与当时大部分语言不同,ABC语言是以教学为目的,目标是“让用户感觉更好”,希望通过ABC语言让语言变得容易阅读、容易使用、容易记忆、容易学习,并以此激发人们学习编程的兴趣。

ABC语言尽管已经具备了良好的可读性和易用性,不过始终没有流行起来。当时,ABC语言编译器需要配置比较高的电脑才能运行,而这些电脑的使用者通常精通计算机,他们考虑更多的是程序的效率,而不是学习难度。ABC语言不能直接操作文件系统,尽管用户可以通过文本流等方式导入数据,不过ABC无法直接读写文件。输入输出的困难对于计算机语言来说是致命的。你能想象一款打不开车门的跑车吗?

1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字来自于Guido所挚爱的电视剧——Monty Python’s Flying Circus。他希望这个新语言Python能够符合他的理想:创造一种介于C和Shell之间,功能全面、易学易用、可拓展的语言。Guido作为一个语言设计爱好者,已经尝试过设计语言,这次不过是一种纯粹的hacking行为。

1991年,第一个Python编译器诞生。该编译器是用C语言实现的,并且能够调用C语言的库文件。Python诞生时便具有类、函数、异常处理、包含表和词典在内的核心数据类型以及模块为基础的拓展系统。

Python的很多语法来自于C,却又受ABC语言的强烈影响。来自ABC语言的一些规定至今还富有争议(比如强制缩进),不过这些语法规定让Python容易理解。另一方面,Guido聪明地选择让Python服从一些惯例,特别是C语言的惯例,比如回归等号赋值。Guido认为“常识”确定的东西没有必要过度纠结。

Python从一开始就特别在意可拓展性。Python可以在多个层次上拓展,在高层可以直接引入.py文件,在底层可以引用C语言的库。程序员可以使用Python快速编写的.py文件作为拓展模块。当性能是重点考虑的因素时,程序员可以深入底层写C程序,将编译的.so文件引入Python中使用。Python就像使用钢筋建房一样,要先规定好大的框架。程序员可以在此框架下相当自由地拓展或更改。

最初,Python完全由Guido本人开发,后来逐渐受到Guido同事的欢迎,他们迅速反馈使用意见,并参与Python的改进。Guido和一些同事构成了Python的核心团队,他们将自己大部分业余时间用于hack Python, Python逐渐拓展到了研究所外。Python将许多机器层面的细节隐藏交给编译器处理,并凸显逻辑层面的编程思考,程序员使用Python时可以将更多时间用于程序逻辑的思考,而不是具体细节的实现,这一特征吸引了广大程序员。Python开始流行起来了。1.2 Python的应用场合

现在,全世界有600多种编程语言,但流行的编程语言也就20多种。如果你听说过TIOBE排行榜,就能知道编程语言的大致流行程度。图1-1是2004~2014年最常用的10种编程语言的变化图。图1-1 TIOBE排行榜

从2015年到目前为止,Python基本处于第5位,市场占有率次于Java、C、C++和C#,这个现象的出现主要是从2015年至今云计算和大数据的异常火热所致,特别是OpenStack的市场声望越来越高,进一步促进了Python的市场需求。大数据方面对Python人才的需求也不断加大,Python在接下来一段时间将更加火热。

Python在云计算方面的用途很大,比如云计算中IaaS(Infrastructure as a Service,基础设施即服务)层的很多软件都大量使用Python,云计算的其他服务都建立在IaaS服务的基础上。

下面这些使用比较广泛的软件就大量使用Python。(1)企业虚拟化平台(CecOS)中的一些计算和自动化任务。(2)持续交互平台(Spinnaker)中的一些计算和自动化任务。(3)开源IaaS软件(ZStack)。(4)开源云计算技术(OpenStack)。(5)Amazon s3命令行管理工具(s3cmd)。(6)EC2云计算管理工具(StarCluster)。

在大数据领域,Python的使用也越来越广泛。Python在数据处理方面有如下优势:(1)异常快捷的开发速度,代码非常少。(2)丰富的数据处理包,无论是正则,还是HTML解析、XML解析,用起来都非常方便。(3)内部类型使用成本很低,不需要许多额外操作(java、C++用一个Map都很费劲)。(4)公司中大量数据处理工作不需要面对非常大的数据。(5)巨大的数据不是语言所能解决的,需要处理数据的框架(如Hadoop)。Python虽然小众,但是有处理大数据的框架。一些框架也支持Python。(6)编码问题处理起来非常方便。图1-2 Python的定位

除了在云计算和大数据领域的应用,许多大型网站也是用Python开发的,如YouTube、Instagram以及国内的豆瓣。很多大公司包括Google、Yahoo以及NASA都大量使用Python。

我们熟知的豆瓣就是用Python搭建的,Facebook也是扎克用Python开发出来的,后来的Twitter也是用Python写的,实际上Python是国外很多大公司(如Google)使用的主要语言。

龟叔给Python的定位如图1-2所示,为“优雅”“明确”“简单”。Python程序看上去总是简单易懂,初学者学Python不但容易入门,而且将来深入下去可以编写非常复杂的程序。

Python的哲学就是简单、优雅、明确,尽量写容易看明白的代码,尽量将代码写得更少。

Python是一个简单、解释型、交互式、可移植、面向对象的超高级语言。这是对Python语言最简单的描述。

Python有一个交互式的开发环境,Python的解释运行大大节省了每次编译的时间。Python语法简单,内置几种高级数据结构(如字典、列表等),使得使用起来特别简单。Python具有大部分面向对象语言的特征,可完全进行面向对象编程。Python可以在MS-DOS、Windows、Windows NT、Linux、Solaris、Amiga、BeOS、OS/2、VMS、QNX等多种操作系统上运行。1.3 从2.7到3.5,Python的新特性

目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。3.x不考虑对2.x代码的向后兼容。虽然当前大部分公司都是基于2.7版本进行开发的,但是3.x版会越来越普及,所以本书将以最新的Python 3.5版本为基础进行介绍。在写本书时,Python的最新版本是3.5.2,本书中的示例和讲解内容都是基于这个版本进行的。建议读者安装3.5.0以上的版本进行学习,这样学习本教程中的内容才会更加容易。

在3.x中,一些语法、内建函数和对象的行为有所调整。大部分Python库都同时支持Python 2.7.x和3.x版本,所以无论选择哪个版本都可以。为了在使用Python时避免某些版本中常见的陷阱,或者需要移植某个Python项目时,依然有必要了解一下Python两个常见版本之间的主要区别。

两个版本之间的主要区别如下:1.使用__future__模块

Python 3.x引入了一些与Python 2不兼容的关键字和特性。在Python 2中,可以通过内置的__future__模块导入这些新内容。如果你希望在Python 2环境下写的代码也可以在Python 3.x中运行,那么建议使用__future__模块。2. print函数

虽然print语法是Python 3中一个很小的改动,而且应该已经广为人知,但是依然值得提一下:Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。在Python 2中使用额外的括号也可以,但是如果要在Python 3中以Python 2的形式不带括号调用print函数,就会触发SyntaxError(语法错误)。3.整数除法

由于人们常常会忽视Python 3在整数除法上的改动(写错了也不会触发SyntaxError),因此在移植代码或在Python 2中执行Python 3的代码时需要特别注意这个改动。4. Unicode

Python 2有基于ASCII的str()类型,可通过单独的unicode()函数转成unicode类型,但没有byte类型。在Python 3中有了Unicode(UTF-8)字符串和两个字节类(bytes和bytearrays)。5. xrange

在Python 2.x中,经常会用xrange()创建一个可迭代对象,通常出现在“for循环”或“列表/集合/字典推导式”中。在Python 3中,range()的实现方式与xrange()函数相同,所以不存在专用的xrange()(在Python 3中使用xrange()会触发NameError)。6.触发异常

Python 2支持新旧两种异常触发语法,而Python 3只支持带括号的语法(不然会触发SyntaxError)。7.处理异常

Python 3中的异常处理发生了一点变化。在Python 3中必须使用as关键字,Python 2中不需要。8. next()函数和.next()方法

由于会经常用到next()(.next())函数(方法),因此要提到另一个语法改动(实现方面也做了改动):在Python 2中,函数形式和方法形式都可以使用;在Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。9. for循环变量与全局命名空间泄漏

在Python 3.x中,for循环中的变量不再会泄漏到全局命名空间中了。10.比较无序类型

Python 3中另一个优秀的改动是,如果我们试图比较无序类型,就会触发一个TypeError。11.使用input()解析输入内容

Python 3改进了input()函数,这样该函数就会总是将用户的输入存储为str对象。在Python 2中,为了避免读取非字符串类型会发生的一些危险行为,不得不使用raw_input()代替input()。12.返回可迭代对象,而不是列表

某些函数和方法在Python 3中返回的是可迭代对象,而不像在Python 2中返回列表。对象只遍历一次会节省很多内存,如果通过生成器多次迭代这些对象,效率就不高了。此时如果需要列表对象,可以通过Python 3的list()函数简单地将可迭代对象转成列表。1.4 如何学习Python

学习Python时,建议找一些学习搭档一起学习和讨论,这样效果会更好。若能尝试将一些内容讲给他人听,则效果更佳,在讲述的过程中你会思考更多。在学习的过程中,对于遇到的例子最好能逐步形成自己先思考的习惯,思考后再看看给出的示例是怎样的,在这个过程中或许能找到比示例更好的处理方法。此外,练习题最好也能动手完成。

在写代码时,千万不要用“复制”“粘贴”把代码从页面粘贴到你的电脑上。写程序讲究一个感觉,需要一个字母一个字母地把代码敲进去。在敲代码的过程中,初学者经常会敲错,所以需要仔细检查、对照,这样才能以最快的速度掌握如何写程序。在编写代码的过程中,宁愿写得慢或多写几遍,刚开始学习或许很吃力,但随着慢慢积累和熟悉,后面会越来越快,越来越顺畅。若习惯拷贝代码,或许很长一段时间后依然只会拷贝代码,而不能熟悉相关内容,速度也提升不了。

语言的发展总是在不断变化,任何一门语言要让大家持续不断地使用,都需要不断更新。语言本身需要不断更新,学习者也要不断学习语言本身的新东西,这样才能与时俱进、跟上语言的发展。

Python作为一门不断发展与普及的语言,还在不断更新中。如果要了解有关最新发布的版本和相关工具的内容,http://www.python.org就是一个聚宝盆。加入一些Python学习社区或找到一些有共同爱好的人一起学习交流是非常好的学习Python的方式。正所谓集思广益,一起思考与学习的人多了,大家能接触和学到的知识就会更多。在互联网时代,更应该发挥网络互联的作用,通过网络学习更新颖、更与时倶进的知识。

以下网址可以帮助读者更好地学习Python:(1)http://www.liaoxuefeng.com/(2)http://www.runoob.com/python3/python3-tutorial.html1.5 Python环境构建

工欲善其事,必先利其器。在开始编程前,需要先准备好相关工具。下面简要介绍如何下载和安装Python。

Python的安装软件可以从Python官方网站下载,地址:https://www.python.org/downloads/。建议下载软件时从对应的官方网站下载,这样比较权威,而且更加安全。1.5.1 在Windows系统中安装Python

在Windows中安装Python可以参照下面的步骤:打开Web浏览器(如百度浏览器、Google、火狐等),访问https://www.python.org/ downloads/,进入网页,应该可以看到如图1-3所示的页面,单击图中红色箭头和下划线标注的地方,进入对应的软件下载页面即可进行软件下载。图1-3 Python官方网站下载页面

也可以用另一种方式下载软件,如图1-4所示。直接在浏览器的搜索框中输入Python下载,可找到搜索结果,进入下载即可。有以下几点需要注意:(1)查看是否为最新版。图1-4所示为编写本书时的Python最新官方版。(2)查看是电脑版还是Mac版。图1-4中显示的是电脑版的Python软件信息。(3)查看版本号。图1-4中Python的版本是3.5.2。(4)支持的环境。图1-4中环境信息显示支持Windows系列的环境。图1-4 Python官方网站下载页面下载安装软件后,接下来进行软件的安装。(1)双击下载好的软件,或者选中并右击下载好的软件,在弹出的对话框中选择“打开”选项,可以看到如图1-5所示的界面。底部的第一个复选框默认自动勾选,保持勾选状态即可,Add Python 3.5 to PATH复选框默认不勾选,需要手动勾选,可以将Python的安装路径添加到环境变量中,勾选后,后面可省去该操作。如果希望将Python安装到指定路径下,就单击Customize installation。如果单击Install Now,系统就会直接开始安装Python,并安装到默认路径下(此处建议安装到自己指定的目录)。图1-5 安装Python(2)单击Customize installation后,会看到如图1-6所示的界面。此处没什么需要注意的,直接单击Next即可。图1-6 单击Next按钮(3)在图1-7所示的界面中,第一个红箭头指向的是系统默认的Python安装路径,若需要更改默认安装路径,则可单击第二个箭头所指的Browse按钮。图1-7 更改安装路径(4)如图1-8所示,安装路径没有使用默认路径,笔者已将安装路径修改为E:\python\ pythoninstall。图1-8 查看已更改的安装路径(5)更改安装路径后,单击Install按钮,得到如图1-9所示的安装进行中界面。图1-9 安装进行中(6)待安装完成会得到如图1-10所示的安装成功界面。单击Close按钮,安装工作就完成了。Python的安装是不是很简单?图1-10 安装完成软件安装成功后,查看你安装的软件是否能成功运行(此处以Windows 7系统为例,其他相关系统可以查找对应信息进行查看)。

单击电脑的“开始”按钮,可以看到如图1-11所示的输入框,在输入框中输入cmd三个字符,如图1-12所示。图1-11 输入框图1-12 输入cmd

输入cmd后按Enter键,得到如图1-13所示的cmd命令界面。图1-13 cmd命令界面

在cmd命令界面输入python字符,输入完成后按Enter键,得到如图1-14所示的界面。其中,红色椭圆圈所示为输入的字符,下面打印了一些安装信息,红色下划线标注的为安装Python的版本,当前安装的是3.5.2版本。输入Python命令,同时进入Python控制台,可以在这里输入命令并得到相应结果,此处不做进一步讲解,在下一章会进行具体介绍。图1-14 Python命令

此处输入python命令看到的信息比较多,有不少其他信息,若只想查看版本信息,可输入命令-version,如图1-15所示。该命令的使用方式为:python -version。从输出结果可以看到,信息非常简单明了,结果为Python ,版本是3.5.2,和图1-14的结果是一样的,但没有图1-14中的其他信息。注意version前面有两个“-”符。从图1-15可以看到,退出Python控制台的命令为exit()。

到此为止,Python环境总算是搭建完成了。如果在图1-5中没有勾选Add Python 3.5 to PATH会怎么样呢?图1-15 Python版本查看

在安装时没有勾选Add Python 3.5 to PATH,则在如图1-14和1-15操作时分别会得到图1-16所示的结果。图1-16 未勾选Add Python 3.5 to PATH显示结果1

Windows会根据Path环境变量设定的路径查找python.exe,如果没找到就会报错。因此如果在安装时漏掉了勾选Add Python 3.5 to PATH,就要手动把python.exe所在的路径添加到Path中。

如果不喜欢自己动手修改环境变量,可以把Python安装程序重新运行一遍,务必记得勾选Add Python 3.5 to PATH。

如果想尝试添加环境变量,可以执行以下操作。

选择“开始”→“计算机”(找到计算机就可以),选中并右击计算机,在弹出的菜单中单击“属性”,弹出如图1-17所示的界面。图1-17 计算机属性

单击“高级系统设置”(图中箭头所指),弹出如图1-18所示的“系统属性”界面。

该界面默认显示“高级”菜单界面,如果进入后显示的不是“高级”菜单界面,就手动选择“高级”菜单。在该界面的右下角单击“环境变量”按钮,得到如图1-19所示的界面。图1-18 系统属性图1-19 环境变量

双击图1-19中箭头所指的Path,弹出“编辑用户变量”界面,在界面的“变量值”输入框中加入Python的安装路径(如E:\python\pythoninstall),如图1-20所示。图1-20 编辑用户变量

注意,变量值中的内容可以英文分号(;)开始,前面有一个分号,并以\结尾,如;E:\python\pythoninstall\。单击“确定”按钮可回到图1-19,在图1-19中单击“确定”按钮,可回到图1-18,在图1-18中单击“确定”按钮,环境变量就添加成功了。接下来就可以如图1-11所示进行操作。

至此,在Windows上安装Python就结束了。1.5.2 在Linux和UNIX系统中安装Python如果你正在使用Linux,而且有Linux系统管理经验,自行安装Python 3就没有问题,否则请换回Windows系统。在绝大多数Linux和UNIX系统中,Python解释器已经存在了,但是预装的Python版本一般都比较低,很多Python的新特性都没有,必须重新安装新版本。在图1-21中可以看到,linux下预装的Python版本是2.7.5。这里笔者准备安装版本3.5.1。图1-21 Linux中预装的Python

下面以在CentOS 7下安装Python 3.5为例进行介绍,安装步骤如下:安装Python 3.5可能使用的依赖命令如下:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

执行结果如图1-22所示。图1-22 安装Python依赖到Python官方网站找到下载路径,用wget下载,命令如下:wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz

执行结果如图1-23所示。图1-23 下载Python解压tgz包,命令如下:tar -zxvf Python-3.5.1.tgz

执行结果如图1-24所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载