关于我们
书单推荐
新书推荐
|
给所有人的Python(第4版)
本书由浅入深地从软件安装环境到基础语法与应用来讲解面向对象脚本语言Python。本书共13章,主要讲解Python的语法以及Python的相关应用,*后还比较了Python
2与Python 3之间的差别,以供读者参考。
本书既可作为Python开发入门者的自学用书,也可作为高等院校相关专业的教学参考书。
近来不以软件开发为专业的,也就是非工程师使用Python的情况渐渐增多。本书第四版将基础讲解部分大篇幅改写得更加易读易懂,便于读者入门。
本书是面向对象脚本语言Python的入门书。Python是一种在美国、欧洲、包括日本在内的亚洲各国广为使用的一种程序设计语言。Python不仅简洁易懂,而且是一种可以在比较严谨的程序设计中使用的语言。近年来,在以机器学习与深度学习deep learning)为代表的人工智能基础领域,或是数据科学(datascience)领域中,Python也作为一种常用的程序设计语言而被大家所关注。例如,Google(谷歌)、
Microsoft(微软)等知名企业都在使用Python。
本书是第4版修订版,从问世以来,已经过了10年。 第1版出版是在2006年,当时正是一种新的Web萌芽与脚本语言都广受关注的时代。在欧美国家,知名的Web服务在开发时使用Python的事例很多。但是在日本,Python还没有很高的知名度。那时作为第一本Python日语书,第1版主要是将Python的优点广泛传达给了日本社会。 第2版出版时,正处于云概念被广泛接受的时代。以虚拟机监视器Xen、Google的云服务(cloud service)AppEngine为代表,在云领域中,Python也受到了广泛关注。 在第3版中,以几年前发布的Python 3为中心,大规模地修改了第2版。以Linux的包管理为代表,Python作为基础被继续使用。在第3版中,对革新后的新Python进行了介绍。Python 3提高了一惯性,可以更安心、更长久地使用。 接下来是第4版。第4版增加了有关近年来广受关注的数据科学与机器学习的章节。另外,近来不以软件开发为专业的,也就是非工程师使用Python的情况渐渐增多。考虑到这一点,本版将基础讲解部分大篇幅改写得更加易读易懂。 回首这10年,我认为Python是时常引导时代的先驱者。从Web开始,云以及数据科学、人工智能等,Python总是开启新技术的起点。介绍这样优秀的Python,是本书最大的使命。 最后,要对审查本书的岩井雅治、太田芳行、奥野慎吾、kabihiko、木村明治、乡田mariko、樱井骏、铃木润、高田美纪、高野隆一、中村让、minakawamisaki、通口千洋、福岛真太郎、松泽太郎(50音顺序),以及本书的编辑、参与本书出版工作的所有工作人员表达最真挚的谢意。 同时也希望,通过本书,能有更多的人喜爱Python,喜爱indent。 写给最深爱的妻子、儿子、女儿和狗狗,同时也写给10年后的自己
柴田淳,2000年初起开始运用Python进行软件系统的委托开发,参与大型网站和出版社的CRM、谷歌推广网站的后台等的开发。目前专注于公司服务系统的开发和运营。
第1章 程序设计语言Python 1
1.1 Python的魅力 1 1.1.1 Python很容易记忆 2 1.1.2 Python很容易使用 3 1.1.3 Python有广阔的前景 4 1.2 Python(Anaconda)的下载和安装… 6 1.2.1 什么是Anaconda 6 1.2.2 必要的学习环境7 1.2.3 在 Windows系统中安装Anaconda 8 1.2.4 在macOS(OS X)系统中安装Anaconda 9 1.2.5 在Linux系统中安装 Anaconda 10 1.2.6 已经安装Python的情况 11 1.2.7 安装本家版Python 11 1.3 交互式脚本(对话型脚本) 13 1.3.1 在 Windows系统中启动交互式脚本 13 1.3.2 在 macOS、Linux系统中启动交互式脚本14 1.3.3 输入Python代码15 1.3.4 关闭交互式脚本20 1.4 在文件中编写Python程序 20 1.4.1 使用Editor(编辑器)编写程序21 1.4.2 保存Python程序 21 1.4.3 在 Windows系统中运行Python的脚本文件22 1.4.4 在 macOS、Linux系统中执行Python的脚本文件 23 1.4.5 推荐的编辑器和选择方法24 1.5 使用Jupyter Notebook 26 1.5.1 在 Windows、macOS系统中启动内核 28 1.5.2 在Linux系统中启动内核 28 1.5.3 使用主面板29 1.5.4 制作Notebook29 1.5.5 使用Notebook运行程序 30 1.5.6 保存Notebook 32 1.5.7 结束Notebook 33 1.5.8 使用Jupyter Notebook的tmpnb 33 1.5.9 示例代码的运行方法34 第2章 用Python开始程序设计36 2.1 使用数值36 2.1.1 使用数值的四则运算37 2.1.2 四则运算和优先顺序38 2.2 使用变量38 2.2.1 定义变量38 2.2.2 使用变量进行计算39 2.3 使用字符串41 2.3.1 定义字符串41 2.3.2 字符串的连接42 2.3.3 复合运算符43 2.3.4 统一类型的Python风格 44 2.3.5 字符串与数值的转换(类型转换) 45 2.4 使用列表47 2.4.1 定义列表47 2.4.2 指定索引取出元素48 2.4.3 列表的连接50 2.4.4 元素的置换和删除50 2.4.5 使用切片取出多个元素52 2.4.6 列表的列表二维数组53 2.4.7 列表的合计、最大值和最小值55 2.4.8 查看列表长度56 2.5 用for语句进行循环操作 57 2.6 用if语句进行条件分支 61 2.6.1 比较数值63 2.6.2 比较字符串63 2.6.3 检索字符串64 2.6.4 比较列表64 2.6.5 检索列表元素65 2.6.6 使用else语句 65 2.7 使用函数69 2.7.1 什么是函数69 2.7.2 调用函数70 2.7.3 函数的参数70 2.7.4 函数的返回值(1) 71 2.7.5 定义函数72 2.7.6 定义参数74 2.7.7 函数的返回值(2) 75 2.7.8 本地变量76 2.8 使用模块79 2.8.1 导入模块80 2.8.2 import语句的as 81 2.8.3 使用了from的导入 81 2.8.4 模块的查找方法82 第3章 掌握Python的基础83 3.1 使用字典83 3.1.1 什么是字典83 3.1.2 使用键取出元素84 3.1.3 使用键替换元素85 3.1.4 添加新的键与值86 3.1.5 使用键删除元素87 3.1.6 确认键的存在88 3.1.7 使用键的循环89 3.2 使用set(集合) 90 3.2.1 定义set 91 3.2.2 求set的并集 91 3.2.3 求set的差集 92 3.2.4 求set的交集 92 3.2.5 求set的异或 93 3.2.6 set与列表 94 3.2.7 set与比较 94 3.3 使用元组95 3.4 if语句的应用99 3.4.1 比较运算符99 3.4.2 比较运算符与True和False 99 3.4.3 关于比较的备忘录 100 3.4.4 复杂的比较逻辑运算 100 3.5 循环的应用 101 3.5.1 使用while语句制作循环 101 3.5.2 使用了break语句和continue语句的循环控制 103 3.5.3 循环的else 105 3.6 函数的应用 105 3.6.1 对函数定义默认参数 106 3.6.2 参数的关键字指定 107 3.6.3 函数和本地变量 108 第4章 熟练使用内置类型111 4.1 作为对象的内置类型概述 111 4.1.1 什么是方法 111 4.1.2 作为对象的内置类型 113 4.1.3 内置的数据类型一览 114 4.1.4 数据类型的分类 116 4.1.5 序 列 116 4.1.6 可更改和不可更改 117 4.1.7 set类型和字典类型117 4.2 操作数值类型 118 4.2.1 十六进制的表示方法 118 4.2.2 二进制的表示方法119 4.2.3 八进制的表示方法 120 4.2.4 位运算 121 4.3 熟练使用字符串类型 121 4.3.1 字符串的替换和删除 121 4.3.2 split()方法和join()方法 122 4.3.3 转义序列 124 4.3.4 raw字符串 126 4.3.5 字符串中可以使用的方法 126 4.3.6 字符串的格式化 128 4.4 熟练掌握列表类型和元组类型 132 4.4.1 给列表排序 132 4.4.2 自定义排列顺序 133 4.4.3 解包代入 134 4.4.4 切片的步长数 135 4.4.5 使用了切片元素的代入和删除135 4.4.6 列表中可以使用的方法 136 4.5 熟练使用set类型 137 4.6 熟练掌握字典类型 138 4.6.1 通过序列等制作字典 138 4.6.2 将两个字典进行组合 139 4.6.3 巧妙处理字典的键 139 4.6.4 灵活运用字典中的方法 140 4.7 if语句和内置类型142 4.8 for语句和内置类型142 4.8.1 熟练使用range()函数 142 4.8.2 序列和循环计数器143 4.8.3 使用两个序列的循环 144 4.9 函数和内置类型 145 4.9.1 返回值和解包代入 145 4.9.2 在函数中接收参数列表 146 4.9.3 在函数中接收关键字参数 147 4.10 Python的字符串和日语 147 4.10.1 有关字符编码的基础知识147 4.10.2 Python和 Unicode 150 4.10.3 字节类型150 4.10.4 字符串向字节类型转换152 4.10.5 字节类型向字符串类型转换153 4.10.6 脚本文件的编码指定153 4.10.7 编码的判断154 4.10.8 编码和乱码154 4.10.9 多字节字符和字符的分界156 4.11 Python的文件处理 156 4.11.1 文件和文件对象158 4.11.2 从文件中读取160 4.11.3 写入文件162 4.11.4 处理二进制文件162 4.11.5 文件名称的处理163 第5章 Python与函数式程序设计 165 5.1 什么是函数式程序设计 165 5.1.1 Python的语句和表达式 167 5.1.2 Lambda表达式 167 5.2 解析式 168 5.2.1 列表解析式 169 5.2.2 列表解析式的详细介绍 169 5.2.3 在列表解析式中使用if 170 5.2.4 字典解析式 171 5.2.5 set解析式172 5.3 使用迭代 172 5.3.1 什么是迭代 172 5.3.2 迭代和延迟评价 173 5.4 使用生成器 175 5.4.1 定义生成器函数 176 5.4.2 生成器表达式 176 5.5 高阶函数和装饰器177 5.5.1 高阶函数 177 5.5.2 装饰器 179 第6章 类与面向对象开发181 6.1 在Python中使用类181 6.1.1 对象和类 181 6.1.2 由类制作对象(实例) 182 6.1.3 使用实例 183 6.1.4 对象和实例183 6.2 制作类184 6.2.1 定义类 185 6.2.2 实例的属性 185 6.2.3 方法的定义与初始化方法__init__() 187 6.2.4 方法与第一参数self 188 6.2.5 属性的隐蔽性 192 第7章 类的继承与高级面向对象功能194 7.1 继承类 194 7.1.1 指定超类 195 7.1.2 方法的重写 195 7.1.3 初始化方法的重写 196 7.1.4 得到使用super()的超类 197 7.1.5 插 槽 198 7.1.6 特 征 199 7.2 使用特殊方法 200 7.3 继承内置类型 206 第8章 模 块209 8.1 创建模块文件夹 209 8.1.1 导入模块时的操作 210 8.1.2 仅在执行文件时执行的块 211 8.1.3 类与模块 212 8.2 模块的层次(包) 213 8.2.1 包的本质 213 8.2.2 创建包 214 8.3 使用模块时的注意事项 214 8.3.1 使用from语句导入的弊端 214 8.3.2 模块的搜索顺序 214 8.4 使用第三方模块 215 8.4.1 模块的搜寻方法 215 8.4.2 使用pip安装模块 216 8.4.3 使用conda安装模块 217 8.4.4 模块的种类 217 8.4.5 手动安装模块 218 8.4.6 模块的设置场所和Python的版本 218 第9章 作用域与对象221 9.1 命名空间、作用域221 9.1.1 作用域的规则 222 9.1.2 类、实例的作用域224 9.2 纯粹面向对象语言Python 225 9.2.1 对象与属性 225 9.2.2 魔法函数dir()226 9.2.3 作为属性的方法 227 9.2.4 全部都是对象 228 9.2.5 对象与类型228 9.2.6 对象与属性 230 9.2.7 类、模块与属性231 9.2.8 对象和变量 231 9.2.9 对象与命名空间 232 第10章 异常处理 234 10.1 Python的异常处理 234 10.1.1 异常的发生234 10.1.2 捕获异常235 10.1.3 with语句 237 10.1.4 异常与追溯237 10.1.5 引发(raise)异常238 10.1.6 显示追溯238 10.2 常见错误或异常与对策239 10.2.1 读取程序时发生的错误(SyntaxError) 240 10.2.2 程序执行中发生的错误(Exception) 240 第11章 使用标准库 243 11.1 标准库的导入243 11.2 数据结构244 11.2.1 保持添加时顺序的collections.OrderedDict 244 11.2.2 带有默认值的字典collections.defaultdict 245 11.2.3 协助列表sort的bisect 246 11.3 处理日期数据的datetime、calendar 247 11.3.1 日期与时刻和字符串249 11.3.2 日期与时刻的运算和比较250 11.3.3 使用datetime.date类的方法 251 11.3.4 使用datetime.datetime类的方法 252 11.3.5 使用calendar模块 252 11.4 正则表达式re 254 11.4.1 re模块 254 11.4.2 Python的正则表达式 255 11.4.3 正则表达式的pattern字符串 255 11.4.4 使用正则表达式对象257 11.4.5 将模式传递给参数,进行正则表达式的处理 259 11.4.6 使用匹配对象260 11.4.7 正则表达式的示例261 11.5 获取操作系统参数的sys 261 11.5.1 获取命令行的参数261 11.5.2 程序的结束262 11.5.3 其他函数与变量262 11.6 获得及操作文件、进程等依赖 OS信息的OS 262 11.6.1 获取、操作与进程相关的信息 262 11.6.2 文件与目录的操作263 11.6.3 进程管理265 11.6.4 在交换平台使用了路径的操作266 11.7 使用数学函数mathrandom 267 11.7.1 math数学函数模块 267 11.7.2 random生成随机数 269 11.8 获取因特网上数据的urllib 270 11.8.1 从 Web或FTP中获取文件271 11.8.2 使用request.urlretrieve()函数的示例代码 271 11.8.3 从 Web或FTP中读取数据272 11.8.4 在urlopen()返回的对象中可以使用的方法 272 11.8.5 BASIC认证 273 11.8.6 用POST方式传输数据 274 11.8.7 其他函数275 11.9 创建字符串库虚拟文件的io.StringIO 276 11.10 CSV(逗号分隔值)文件的操作 277 11.11 对象持久化与序列化shelvepickle 278 11.11.1 将字典持久化的shelve 279 11.11.2 执行对象持久化与序列化的pickle 280 11.12 处理JSON数据的json 282 11.12.1 将JSON转换为Python的数据类型283 11.12.2 Python的数据类型转换为JSON 283 11.12.3 json的使用示例 284 第12章 Python与数据科学 285 12.1 NumPy与 matplotlib 285 12.1.1 所谓的 NumPy与 matplotlib 285 12.1.2 使用NumPy 287 12.1.3 使用 matplotlib 290 12.2 使用NumPy 291 12.2.1 生成NumPy的array 291 12.2.2 使用数组的运算293 12.2.3 访问元素295 12.2.4 数组的连接295 12.2.5 复制数组296 12.3 使用 matplotlib 296 12.3.1 使用plot()来绘制图表297 12.3.2 控制plot()的绘制299 12.3.3 加入字符300 12.4 将日本的人口可视化300 12.4.1 读取人口数据301 12.4.2 绘制人口金字塔303 12.4.3 将图表绘制在交互式中304 12.4.4 推算未来人口数量306 12.5 Python与机器学习 310 12.5.1 用机器学习进行数值的预测311 12.5.2 机器学习的算法315 12.5.3 由姓名来判定性别316 12.5.4 机器学习、数据科学与Python 320 12.5.5 深度学习的登场和未来321 第13章 Python 2 323 13.1 Python 3与Python 2的不同点323 13.1.1 在Python 3中被削减掉的功能 324 13.1.2 在Python 2.7中可以使用的Python 3功能 324 13.1.3 在Python 3中改变了的功能 325 13.1.4 模块的再配置、名称变更 329 13.2 从Python 2到Python 3的迁移 330 13.3 结束语331
你还可能感兴趣
我要评论
|