《速学Python:程序设计从入门到进阶》面向没有任何编程基础的初学者。全书共9章,第1、2章以尽可能少的篇幅,完成了对编程环境的搭建、编程的基本概念、Python语法、数据结构、面向对象编程技巧的讲述,这一部分内容虽然简单,但它对初学者非常重要,只有完成这一部分内容的学习,才能够继续深入。第3~6章是对第1、2章内容的深入与补充,主要是搭建更好的开发环境,更详细地讲述数据结构与函数,并通过编写一个计算器程序,深入了解解释器的基本工作原理以及面向对象编程。第7~9章讲述了如何创建程序的可视化界面,将Python程序打包为可执行程序并使用主流数据库进行数据存储,继而实现数据分析与数据图表的生成。第9章是Python语言*大优势的体现,通过引入第三方库或调用网络接口,可以快速完成应用程序的编写。
本书适合刚接触Python的初学者以及希望使用Python处理和分析数据的读者,也可作为编程爱好者学习和使用Python的工具书或参考资料。
和100000 读者一起跟小楼老师学习,快速掌握编程语言Python
?·友好的中文编程环境方便读者理解代码逻辑
?·丰富的编程实例帮助读者掌握编程技巧、成功构建应用程序
随书赠送全套案例源代码及素材文件
Python近几年越来越流行,在2021年已经成为排名世界第一的编程语言。Python如此受欢迎,得益于它的简单、优雅与高效。简单是因为它是一门高级编程语言,更适合人类阅读;优雅是因为Python代码强制缩进的特点,让每个人写出的代码都有清晰的结构;高效是因为Python有丰富的模块可以进行调用,往往通过几行代码就能够实现特定功能。
在很多没有接触过编程的初学者看来,编程语言复杂枯燥。在自学过程中,很多编程的概念和代码的逻辑会让人感觉头疼、难懂。在很多编程入门的学习资料中,很少详细介绍基础概念,对没有任何编程基础的初学者来说比较困难。
所以,学习编程语言,首先要做的就是理解编程的基本概念,掌握编程语言的语法,提升逻辑分析能力,养成良好的编程习惯。
这些都需要初学者由浅入深、循序渐进地完成,切不可操之过急!
在编写这本书之前,我在自己的个人网站上发布过一系列的Python教程,受到很多读者的欢迎。有些读者将这些教程打印出来装订成册进行学习,这也让我有了编写一本Python图书的信心。
我一直思考如何让完全没有任何编程基础的读者能够轻松有效地完成学习目标,所以在图书的案例取材上尽量贴近读者认知。并且尽量讲清楚为何写某一段代码,而不是如何写某一段代码。
更重要的是,Python 3支持母语编程,这让我能够尽可能地将案例代码中文化,让读者能够更加方便地读懂代码逻辑,尽快实现学习目标。
全书共9章,第1、2章以尽可能少的篇幅,完成了对编程环境的搭建、编程的基本概念、Python语法、数据结构、面向对象编程技巧的讲述,这一部分内容虽然非常简单,但它对初学者非常重要,只有完成这一部分内容的学习,才能够继续深入。第3~6章是对第1、2章内容的深入与补充,主要是搭建更好的开发环境,更详细地讲述数据结构与函数,并通过编写一个计算器程序,深入了解解释器的基本工作原理以及面向对象编程。第7~9章讲述了如何创建程序的可视化界面,将Python程序打包为可执行程序并使用主流数据库进行数据存储,继而实现数据分析与数据图表的生成。第9章是Python语言最大优势的体现,通过引入第三方库或调用网络接口,可以快速完成应用程序的编写。
最后,本书能够面世,离不开机械工业出版社编辑团队的大力支持。让我能够历时三年,完成了本书的编写。
感谢出版社优秀的编辑们,是你们让本书变得更加精彩!
感谢每一位亲爱的读者,是你们给了我前进的动力!
小楼一夜听春语
小楼老师(小楼一夜听春语)。专注产品原型设计、前端开发、Python程序设计,自2013年起,开展的各类企业、个人培训线上线下累计培训人数近百万,自2015年起,出版多部国内口碑销量卓著的Axure RP教程。
2017起,小楼老师致力于推动Python编程基础教学,创办个人网站www.opython.com,发布大量Python相关教程,以及两本免费Python编程电子书。网站文章浏览量总计200余万,切实满足大Python编程学习者的实际需求。
前言
第1章 准备Python编程环境 / 1
1.1 快速了解Python / 1
1.2 极速下载安装Python / 1
1.2.1 下载Python / 1
1.2.2 安装Python / 2
1.3 极速熟悉环境 / 3
1.3.1 了解Python命令行模式 / 3
1.3.2 使用开发学习环境IDLE / 4
1.4 获取Python官方文档 / 5
第2章 编程初体验编写代码解决问题 / 6
2.1 程序是怎么运行的 / 6
2.2 编写程序的基础知识 / 7
2.2.1 从加减乘除开始运算符 / 7
2.2.2 程序中的文字字符串 / 8
2.2.3 总结计算的方法变量与函数 / 10
2.2.4 使用已有的方法内置关键字与函数 / 14
2.2.5 参与程序运算的数值参数 / 16
2.2.6 用错误解决错误异常捕捉 / 19
2.2.7 符合条件再执行条件判断语句 / 22
2.2.8 不断重复的过程while循环语句 / 26
2.2.9 提升计算的难度for循环语句 / 29
2.3 提高编程的效率 / 36
2.3.1 分门别类封装 / 36
2.3.2 继往开来继承 / 43
2.3.3 千变万化多态 / 47
2.3.4 灵活多样动态数据类型 / 50
2.4 拿来主义基于qrcode库生成二维码图片 / 51
2.4.1 安装第三方库 / 51
2.4.2 使用第三方库 / 53
第3章 优化Python开发环境 / 55
3.1 下载安装PyCharm / 55
3.2 使用PyCharm / 56
3.3 一劳永逸添加语句模板 / 57
3.4 常用快捷键 / 58
第4章 Python的基本数据操作 / 60
4.1 基本数据结构操作 / 60
4.1.1 一组数字的排序 / 60
4.1.2 反过来再排一次 / 64
4.1.3 键与值的结构字典 / 65
4.1.4 去除重复集合 / 68
4.2 字符串的操作与格式化 / 70
4.2.1 身份证号码验证 / 70
4.2.2 字符串格式化 / 76
第5章 掌握Python的特别函数 / 79
5.1 生成器 / 79
5.1.1 数据加密基于hashlib / 79
5.1.2 读写文件基于open / 80
5.1.3 编写生成器代码 / 82
5.1.4 查看代码执行时长基于time / 83
5.2 装饰器 / 84
5.2.1 甜蜜的语法糖 / 85
5.2.2 装饰器函数的用途 / 85
5.2.3 日期的处理基于datetime / 87
5.2.4 灵活的参数收集参数 / 87
5.2.5 使用内置装饰器staticmethod/classmethod / 88
5.3 递归函数 / 90
5.3.1 递归的概念 / 91
5.3.2 递归的过程 / 92
5.3.3 用递归解决问题 / 93
5.3.4 递归的典型应用 / 94
第6章 编写一个Python应用计算器 / 97
6.1 实现计算器的基本运算功能 / 97
6.1.1 支持个位数加法 / 97
6.1.2 支持个位数减法 / 100
6.1.3 支持带空格的算式 / 101
6.1.4 支持多位数计算 / 103
6.1.5 支持加减混合计算 / 104
6.1.6 支持乘除法计算 / 107
6.1.7 支持带括号的算式 / 109
6.1.8 支持小数计算 / 111
6.2 词法分析与语法分析 / 112
第7章 玩转Python GUI界面开发 / 117
7.1 Python GUI界面开发基于wxPython / 117
7.1.1 使用wxFormBuilder进行程序界面设计 / 118
7.1.2 为界面控件绑定功能代码 / 123
7.2 将代码打包为Windows应用程序基于PyInstaller / 132
第8章 玩转Python数据库操作基于SQLite3 / 134
8.1 建库与建表 / 134
8.1.1 创建与连接数据库 / 134
8.1.2 创建数据表 / 135
8.2 数据库操作的SQL语句 / 138
8.2.1 添加数据 / 138
8.2.2 删除数据 / 139
8.2.3 修改数据 / 139
8.2.4 查询数据 / 139
8.3 使用Python代码动态生成SQL语句 / 141
第9章 玩转Python应用程序开发 / 153
9.1 玩转数据分析与数据可视化股票行情查看器 / 153
9.1.1 读取CSV文件基于csv模块 / 153
9.1.2 读取Excel文件基于pywin32/pylightxl / 155
9.1.3 文件数据存储到数据库 / 158
9.1.4 图表可视化基于Matplotlib/mplfinance/pandas/NumPy / 162
9.1.5 创建程序界面 / 173
9.1.6 编写功能代码 / 179
9.1.7 为界面控件绑定功能代码 / 183
9.2 玩转机器视觉人脸识别器 / 184
9.2.1 编写核心代码基于face_recognition/OpenCV2/PIL / 187
9.2.2 创建程序界面 / 193
9.2.3 完成功能代码 / 202
9.3 玩转Web接口图像效果增强器 / 208
9.3.1 申请百度智能云API / 209
9.3.2 使用软件开发工具包基于baidu-aip / 211
9.3.3 自定义API调用 / 214
9.3.4 编写核心代码基于requests/Base64/JSON / 217
9.3.5 新的图形界面设计工具基于PyQt5 / 230
9.3.6 创建程序主界面 / 238
9.3.7 编写主要功能代码 / 250
9.3.8 为主界面控件绑定功能代码 / 253
9.3.9 使用多线程运行程序 / 255
9.3.10 创建对话框界面 / 257
9.3.11 编写对话框功能代码 / 263
9.3.12 创建访问令牌对话框 / 265
9.3.13 实现访问令牌校验功能 / 269