Python语言及其应用,pdf高清免费下载地址

获取码:d414

内容简介  · · · · · ·

本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x。书中首先介绍了Python 语言的一些必备基本知识,然后介绍了在商业、科研以及艺术领域使用Python 开发各种应用的实例。文字简洁明了,案例丰富实用,是一本难得的Python 入门手册。

作者简介  · · · · · ·

Bill Lubanovic

现为Penguin Computing公司高级软件工程师。1977年开始开发Unix软件,1981年开始开发GUI软件,1990年开始开发数据库软件,1993年开始开发Web软件。与人合著有Linux System Administration。

目录  · · · · · ·

前言  xiv
第1章 Python初探  1
1.1 真实世界中的Python  5
1.2 Python与其他语言  5
1.3 为什么选择Python  7
1.4 何时不应该使用Python  8
1.5 Python 2与Python 3  8
1.6 安装Python  9
1.7 运行Python  9
1.7.1 使用交互式解释器  9
1.7.2 使用Python文件  10
1.7.3 下一步  11
1.8 禅定一刻  11
1.9 练习  11
第2章 Python基本元素:数字、字符串和变量  13
2.1 变量、名字和对象  13
2.2 数字  16
2.2.1 整数  17
2.2.2 优先级  20
2.2.3 基数  21
2.2.4 类型转换  22
2.2.5 一个int型有多大  23
2.2.6 浮点数  24
2.2.7 数学函数  24
2.3 字符串  24
2.3.1 使用引号创建  25
2.3.2 使用str()进行类型转换  27
2.3.3 使用\ 转义  27
2.3.4 使用+ 拼接  28
2.3.5 使用* 复制  28
2.3.6 使用[] 提取字符  28
2.3.7 使用[start:end:step]分片  29
2.3.8 使用len()获得长度  31
2.3.9 使用split()分割  32
2.3.10 使用join()合并  32
2.3.11 熟悉字符串  32
2.3.12 大小写与对齐方式  33
2.3.13 使用replace()替换  34
2.3.14 更多关于字符串的内容  35
2.4 练习  35
第3章 Python容器:列表、元组、字典与集合  36
3.1 列表和元组  36
3.2 列表  37
3.2.1 使用[] 或list()创建列表  37
3.2.2 使用list()将其他数据类型转换成列表  37
3.2.3 使用[offset]获取元素  38
3.2.4 包含列表的列表  39
3.2.5 使用[offset]修改元素  39
3.2.6 指定范围并使用切片提取元素  40
3.2.7 使用append()添加元素至尾部  40
3.2.8 使用extend()或+=合并列表  40
3.2.9 使用insert()在指定位置插入元素  41
3.2.10 使用del删除指定位置的元素  41
3.2.11 使用remove()删除具有指定值的元素  42
3.2.12 使用pop()获取并删除指定位置的元素  42
3.2.13 使用index()查询具有特定值的元素位置  42
3.2.14 使用in判断值是否存在  42
3.2.15 使用count()记录特定值出现的次数  43
3.2.16 使用join()转换为字符串  43
3.2.17 使用sort()重新排列元素  44
3.2.18 使用len()获取长度  44
3.2.19 使用= 赋值,使用copy()复制  45
3.3 元组  46
3.3.1 使用()创建元组  46
3.3.2 元组与列表  47
3.4 字典  47
3.4.1 使用{}创建字典  48
3.4.2 使用dict()转换为字典  48
3.4.3 使用[key]添加或修改元素  49
3.4.4 使用update()合并字典  50
3.4.5 使用del删除具有指定键的元素  51
3.4.6 使用clear()删除所有元素  51
3.4.7 使用in 判断是否存在  51
3.4.8 使用[key]获取元素  52
3.4.9 使用keys()获取所有键  52
3.4.10 使用values()获取所有值  53
3.4.11 使用items()获取所有键值对  53
3.4.12 使用= 赋值,使用copy()复制  53
3.5 集合  53
3.5.1 使用set()创建集合  54
3.5.2 使用set()将其他类型转换为集合  54
3.5.3 使用in测试值是否存在  55
3.5.4 合并及运算符  56
3.6 比较几种数据结构  58
3.7 建立大型数据结构  59
3.8 练习  60
第4章 Python外壳:代码结构  61
4.1 使用# 注释  61
4.2 使用\ 连接  62
4.3 使用if、elif 和else进行比较  63
4.4 使用while进行循环  66
4.4.1 使用break跳出循环  66
4.4.2 使用continue跳到循环开始  67
4.4.3 循环外使用else  67
4.5 使用for迭代  68
4.5.1 使用break跳出循环  69
4.5.2 使用continue跳到循环开始  69
4.5.3 循环外使用else  69
4.5.4 使用zip()并行迭代  70
4.5.5 使用range()生成自然数序列  71
4.5.6 其他迭代方式  71
4.6 推导式  72
4.6.1 列表推导式  72
4.6.2 字典推导式  74
4.6.3 集合推导式  74
4.6.4 生成器推导式  74
4.7 函数  75
4.7.1 位置参数  79
4.7.2 关键字参数  79
4.7.3 指定默认参数值  79
4.7.4 使用*收集位置参数  80
4.7.5 使用**收集关键字参数  81
4.7.6 文档字符串  82
4.7.7 一等公民:函数  82
4.7.8 内部函数  84
4.7.9 闭包  84
4.7.10 匿名函数:lambda()函数  85
4.8 生成器  86
4.9 装饰器  87
4.10 命名空间和作用域  89
4.11 使用try和except处理错误  91
4.12 编写自己的异常  93
4.13 练习  94
第5章 Python盒子:模块、包和程序  95
5.1 独立的程序  95
5.2 命令行参数  96
5.3 模块和import语句  96
5.3.1 导入模块  96
5.3.2 使用别名导入模块  98
5.3.3 导入模块的一部分  98
5.3.4 模块搜索路径  98
5.4 包  99
5.5 Python 标准库  99
5.5.1 使用setdefault()和defaultdict()处理缺失的键  100
5.5.2 使用Counter()计数  101
5.5.3 使用有序字典OrderedDict()按键排序  103
5.5.4 双端队列:栈+队列  103
5.5.5 使用itertools迭代代码结构  104
5.5.6 使用pprint()友好输出  105
5.6 获取更多Python代码  105
5.7 练习  106
第6章 对象和类  107
6.1 什么是对象  107
6.2 使用class定义类  108
6.3 继承  109
6.4 覆盖方法  111
6.5 添加新方法  112
6.6 使用super从父类得到帮助  112
6.7 self的自辩  113
6.8 使用属性对特性进行访问和设置  114
6.9 使用名称重整保护私有特性  117
6.10 方法的类型  118
6.11 鸭子类型  119
6.12 特殊方法  120
6.13 组合  123
6.14 何时使用类和对象而不是模块  124
6.15 练习  126
第7章 像高手一样玩转数据  127
7.1 文本字符串  127
7.1.1 Unicode  127
7.1.2 格式化  134
7.1.3 使用正则表达式匹配  137
7.2 二进制数据  144
7.2.1 字节和字节数组  144
7.2.2 使用struct转换二进制数据  145
7.2.3 其他二进制数据工具  148
7.2.4 使用binascii()转换字节/ 字符串  149
7.2.5 位运算符  149
7.3 练习  149
第8章 数据的归宿  152
8.1 文件输入/输出  152
8.1.1 使用write()写文本文件  153
8.1.2 使用read()、readline()或者readlines()读文本文件  154
8.1.3 使用write()写二进制文件  156
8.1.4 使用read()读二进制文件  157
8.1.5 使用with自动关闭文件  157
8.1.6 使用seek()改变位置  157
8.2 结构化的文本文件  159
8.2.1 CSV  159
8.2.2 XML  161
8.2.3 HTML  163
8.2.4 JSON  163
8.2.5 YAML  165
8.2.6 安全提示  166
8.2.7 配置文件  167
8.2.8 其他交换格式  168
8.2.9 使用pickle序列化  168
8.3 结构化二进制文件  169
8.3.1 电子数据表  169
8.3.2 层次数据格式  169
8.4 关系型数据库  170
8.4.1 SQL  170
8.4.2 DB-API  172
8.4.3 SQLite  172
8.4.4 MySQL  174
8.4.5 PostgreSQL  174
8.4.6 SQLAlchemy  174
8.5 NoSQL数据存储  179
8.5.1 dbm family  180
8.5.2 memcached  180
8.5.3 Redis  181
8.5.4 其他的NoSQL  189
8.6 全文数据库  189
8.7 练习  190
第9章 剖析Web  191
9.1 Web 客户端  192
9.1.1 使用telnet进行测试  193
9.1.2 Python的标准Web库  194
9.1.3 抛开标准库:requests  195
9.2 Web 服务端  196
9.2.1 最简单的Python Web服务器  196
9.2.2 Web服务器网关接口  198
9.2.3 框架  198
9.2.4 Bottle  198
9.2.5 Flask  201
9.2.6 非Python的Web服务器  204
9.2.7 其他框架  206
9.3 Web服务和自动化  207
9.3.1 webbrowser模块  207
9.3.2 Web API和表述性状态传递  208
9.3.3 JSON  209
9.3.4 抓取数据  209
9.3.5 用BeautifulSoup来抓取HTML  209
9.4 练习  210
第10章 系统  212
10.1 文件  212
10.1.1 用open()创建文件  212
10.1.2 用exists()检查文件是否存在  213
10.1.3 用isfile()检查是否为文件  213
10.1.4 用copy()复制文件  213
10.1.5 用rename()重命名文件  214
10.1.6 用link()或者symlink()创建链接  214
10.1.7 用chmod()修改权限  214
10.1.8 用chown()修改所有者  214
10.1.9 用abspath()获取路径名  215
10.1.10 用realpath()获取符号的路径名  215
10.1.11 用remove()删除文件  215
10.2 目录  215
10.2.1 使用mkdir()创建目录  215
10.2.2 使用rmdir()删除目录  215
10.2.3 使用listdir()列出目录内容  216
10.2.4 使用chdir()修改当前目录  216
10.2.5 使用glob()列出匹配文件  216
10.3 程序和进程  217
10.3.1 使用subprocess创建进程  218
10.3.2 使用multiprocessing创建进程  219
10.3.3 使用terminate()终止进程  219
10.4 日期和时间  220
10.4.1 datetime模块  221
10.4.2 使用time模块  223
10.4.3 读写日期和时间  225
10.4.4 其他模块  227
10.5 练习  228
第11章 并发和网络  229
11.1 并发  230
11.1.1 队列  231
11.1.2 进程  231
11.1.3 线程  232
11.1.4 绿色线程和gevent  234
11.1.5 twisted  236
11.1.6 asyncio  238
11.1.7 Redis  238
11.1.8 队列之上  241
11.2 网络  241
11.2.1 模式  242
11.2.2 发布-订阅模型  242
11.2.3 TCP/IP  245
11.2.4 套接字  246
11.2.5 ZeroMQ  250
11.2.6 scapy  253
11.2.7 网络服务  253
11.2.8 Web服务和API  255
11.2.9 远程处理  256
11.2.10 大数据和MapReduce  260
11.2.11 在云上工作  261
11.3 练习  264
第12章 成为真正的Python开发者  265
12.1 关于编程  265
12.2 寻找Python代码  265
12.3 安装包  266
12.3.1 使用pip  266
12.3.2 使用包管理工具  267
12.3.3 从源代码安装  267
12.4 集成开发环境  268
12.4.1 IDLE  268
12.4.2 PyCharm  268
12.4.3 IPython  269
12.5 命名和文档  269
12.6 测试代码  270
12.6.1 使用pylint、pyflakes和pep8检查代码  270
12.6.2 使用unittest进行测试  272
12.6.3 使用doctest进行测试  276
12.6.4 使用nose进行测试  277
12.6.5 其他测试框架  278
12.6.6 持续集成  278
12.7 调试Python代码  278
12.8 使用pdb进行调试  279
12.9 记录错误日志  284
12.10 优化代码  286
12.10.1 测量时间  286
12.10.2 算法和数据结构  288
12.10.3 Cython、NumPy和C扩展  289
12.10.4 PyPy  289
12.11 源码控制  289
12.11.1 Mercurial  290
12.11.2 Git  290
12.12 复制本书代码  292
12.13 更多内容  293
12.13.1 书  293
12.13.2 网站  293
12.13.3 社区  293
12.13.4 大会  294
12.14 后续内容  294
附录A Python的艺术  295
附录B 工作中的Python  307
附录C Python的科学  320
附录D 安装Python 3  339
附录E 习题解答  349
附录F 速查表  380
作者介绍  383
封面介绍  383

"Python语言及其应用"试读  · · · · · ·

我们从一个小谜题以及它的答案开始。你认为下面这两行的含义是什么? (Row 1): (RS) K18,ssk,k1,turn work. (Row 2): (WS) Sl 1 pwise,p5,p2tog,p1,turn. 它们看起来像是某种计算机程序。实际上,这是一个针织图案。更准确地说,这两行描述的是如何编织袜子的足跟部分。对我来说,看懂它们就像让猫看懂《纽约时报》上的填字游戏一样难,但是对我妻子来说却轻而易举。如果你也懂..

学编程很盲目?不会代码?你可以来瞧瞧这本。是一本难得的Python 入门手册。的更多相关文章

  1. 我教女朋友学编程html系列(7)—Html无序列表、自定义列表、有序列表及常用例子

    昨天写的那篇文章<我教女朋友学编程Html系列(6)—Html常用表单控件>,基本上有1000人左右看了,那边文章是我站在前人的肩膀上修改来的,添加了截图和说明,合并了例子,使之更容易被初 ...

  2. 函数式编程很难,这正是你要学习它的原因 | 外刊IT评论网

    函数式编程很难,这正是你要学习它的原因 | 外刊IT评论网 函数式编程很难,这正是你要学习它的原因 156 次分享 新浪微博 腾讯微博 Tweet 人人网 QQ空间 很奇怪不是,很少有人每天都使用函数 ...

  3. Hard模式学编程

    靖难: 我一直推崇一种学习编程的方法,就是learn programming the hard way,我把它翻译为Hard模式学编程 . 我觉得他有以下几个要领: 1. 一开始学习的时候,要尽量去化 ...

  4. 「雕爷学编程」Arduino动手做(9)——火焰传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  5. Java的BIO和NIO很难懂?用代码实践给你看,再不懂我转行!

    本文原题“从实践角度重新理解BIO和NIO”,原文由Object分享,为了更好的内容表现力,收录时有改动. 1.引言 这段时间自己在看一些Java中BIO和NIO之类的东西,也看了很多博客,发现各种关 ...

  6. Java匹马行天下之学编程的起点——高级语言大锅烩

    学编程的起点——高级语言大锅烩 前言: 学知识前总想说点鸡汤,想喝的朋友就看看,不想喝的就直接看干货吧,就当鸡汤是给我自己喝的. 前段时间在网上看了一句话感觉挺触动我的,我做个分享: 如果你觉得你的祖 ...

  7. Java匹马行天下之学编程的起点——走进编程的殿堂

    学编程的起点——走进编程的殿堂 前言: 知其然,知其所以然,努力固然重要,但是思维的提升会让你事半功倍,我会用我花费时间换来的“思维”带更多的朋友入门,让你们明明白白学编程,学编程,不迷茫. 转变思维 ...

  8. 立足GitHub学编程:13个不容错过的Java项目

    立足GitHub学编程:13个不容错过的Java项目 今天我们将整理一大波干货满满的Java示例代码与能力展示素材. GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自 ...

  9. 「雕爷学编程」Arduino动手做(14)——倾斜角度模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  10. 「雕爷学编程」Arduino动手做(7)——旋转电位器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

随机推荐

  1. 初始化一个GCP项目并用gcloud访问操作

    1 简介 谷歌云GCP(Google Cloud Platform)是由Google提供的云平台,还是为用户提供了许多免费的产品,还是可以尝试一下的.对于学习或者小项目,都可以使用. 2 创建一个新项 ...

  2. python读取kafka,输出到Vertica数据库

    # 主测试 # https://docs.python.org/2/library/json.html import sys import json import vertica_python imp ...

  3. AIGC 很火,想微调个自己的模型试试看?(不是卖课的)

    去年,我们发布过一篇关于 DreamBooth 编程马拉松的活动通知,获得了全球社区的广泛关注和参与,中国社区的成员们也对这个活动有非常高的热情.同时我们也收到了后台留言反馈说参与活动需要使用的 Go ...

  4. day09-AOP-02

    AOP-02 4.问题提出 在上一篇的MyProxyProvider类中,我们的输出语句功能比较弱,在实际开发中,我们希望是以一个方法的形式,嵌入到真正执行的目标方法前,怎么办? 1.使用土方法解决 ...

  5. echarts系列-带图教你调整左右位置x轴样式网格虚线刻度居中双轴Y轴滚动上下移动文字旋转改分割线颜色部分字体改色折注混合,X轴的颜色,X轴字体颜色,调整柱子颜色,调整小图标图例的大小和位置,鼠标hover时候的样式,用纵向阴影

    上面先说注意事项 1.如果使用show hidden控制图表显示隐藏,某些切换效果很奇怪,比如饼图,会从左上角开始放大,很丑,这个时候我们可以设置其宽高来解决问题,给其设置宽高后,切换的奇怪效果即可消 ...

  6. 【随笔记】NDK 编译开源库 jsoncpp

    下载并解压源码 wget https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/1.9.4.tar.gz -O jsoncp ...

  7. Azure Artifacts--全平台的程序包管理仓库(支持nuget)

    写在前面 大部分一定规模的团队都有搭建私有nuget的需求:例如: MyGet BaGet 而我们使用的Azure DevOps 平台本身就提供了Artifacts, Artifacts不单只支持nu ...

  8. Docker容器使用 (入门到精通)

    Docker容器 CentOS安装Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. D ...

  9. 数据湖Hudi与对象存储Minio及Hive\Spark\Flink的集成

    本文主要记录对象存储组件Minio.数据湖组件Hudi及查询引擎Hive\Spark之间的兼容性配置及测试情况,Spark及Hive无需多言,这里简单介绍下Minio及Hudi. MinIO 是在 G ...

  10. Docker修改已有容器的端口映射

    Docker修改已有容器的端口映射 背景 拉取了jenkins的镜像,启动容器的时候端口就映射了8080,但这个演示环境要用到jenkins node,其中默认的代理端口是50000.漏了,就想着能否 ...