🌟Python编程轻松进阶:从基础到高级的秘诀揭秘🌟
📘你是否曾经为Python编程的复杂度而感到困扰?《Python编程轻松进阶》将为你揭示Python编程的奥秘,让你轻松掌握Python的高级技术,成为真正的Python高手!
📕一、Python基础篇:从入门到精通
🚼《Python编程轻松进阶》首先介绍了Python编程的基础知识,包括数据类型、数据结构、函数和模块等。无论你是初学者还是有一定Python基础的开发者,这一部分的内容都将帮助你全面掌握Python编程的基本技能。通过丰富的实例和案例,你将学会如何编写高效、优雅的Python代码,并掌握实用的技巧和最佳实践。
📘二、Python进阶篇:高级技术的探索
📘在掌握了Python编程的基础知识后,你一定渴望了解更多高级技术。《Python编程轻松进阶》将带你深入探索Python的高级技术,包括装饰器、上下文管理器、生成器和元编程等。通过案例和实例的解析,你将了解这些技术的实际应用和最佳实践,从而提升你的Python编程水平。
📚三、实战篇:解决实际问题
👌掌握了Python的基础知识和高级技术后,你需要将这些知识应用到实际问题中。《Python编程轻松进阶》提供了丰富的实战案例,包括Web开发、数据分析、机器学习等领域。通过解决实际问题,你将学会如何运用Python编程技术解决实际需求,提升你的实战能力。
📘四、总结篇:成为Python高手的秘诀
👋最后,《Python编程轻松进阶》总结了成为Python高手的秘诀。通过阅读本书,你将掌握Python编程的核心思想和最佳实践,成为真正的Python高手。无论你是初学者还是有一定基础的开发者,这本书都将帮助你提升Python编程水平,实现轻松进阶!
👆请点击上面《Python编程轻松进阶》了解更多详情!👆
书籍信息
书名: Python编程轻松进阶
作者: [美] 阿尔·斯维加特(Al Sweigart)
出版社: 人民邮电出版社
出品方: 图灵教育
原作名: Beyond the Basic Stuff with Python
译者: 张望
出版年: 2022-6-30
页数: 324
定价: 99.80元
装帧: 平装
丛书: 图灵程序设计丛书·Python系列
ISBN: 9787115592422
内容简介
* 畅销书《Python编程快速上手》姊妹篇
* 逐步可视化代码执行过程,助你编写规范、整洁的Python代码
* 通过益智游戏了解代码底层逻辑,像职业程序员一样使用Python
在学习Python的旅程中,你是否正在“绝望的沙漠”里徘徊?你已经学完了基础教程,却徘徊于不同的学习材料之间,感觉自己毫无长进。本书就是“沙漠里的那片绿洲”。
作为《Python编程快速上手》的姊妹篇,本书专为想达到职业程序员水平却问路无门的人而写。作者拥有丰富的Python教学经验,所写内容既翔实细致,又深入浅出。你将通过三个方面实现从“快速上手”到“轻松进阶”的跃迁:解决初级进阶会遇到的重重困难;掌握Python编程的实践、工具和技巧;理解面向对象的Python。
“对于Python新手,如果想让自己更上一层楼,那么这是难得的进阶书。”
——Kushal Das,CPython核心开发者、Python软件基金会董事
“这本书聚焦于三个主题:解决初级进阶的重重困难;Python实践、工具和技巧;面向对象编程。相比从多个学习资源中挖掘知识,读这本书更有用。”
——Serdar Yegulalp,InfoWorld专栏作家
作者简介
【作者简介】
阿尔·斯维加特(Al Sweigart)是Python软件基金会Fellow,在Python社区颇具影响力,曾受邀在世界各地的Python大会上做主题演讲。他的Python入门书《Python编程快速上手》在全球范围内销售超过70万册。除了写作Python书,阿尔还在线授课。他的Python在线课程已覆盖100万+学生。
【译者简介】
张望
毕业于重庆大学,曾就职于腾讯看点、微信支付等部门,现就职于腾讯音乐集团商业广告部,负责广告投放等商业化系统的建设。腾讯开源项目WeTERM PMC成员,开源项目PyWebIO贡献者。
书籍目录
第一部分起步
第1章处理错误和寻求帮助2
1.1如何理解Python错误信息2
1.1.1检查回溯信息2
1.1.2搜索错误信息5
1.2借助linter避免错误7
1.3如何寻求编程帮助8
1.3.1预先提供信息以避免反复补充9
1.3.2以实际问题的形式陈述问题9
1.3.3在合适的网站上提出你的问题9
1.3.4在标题中概述你的问题9
1.3.5说明代码的预期目的9
1.3.6包含完整的错误信息9
1.3.7分享全部代码10
1.3.8通过适当的格式化增强代码可读性11
1.3.9告诉帮忙者已经尝试过的方法11
1.3.10描述你的设置信息12
1.4样例:如何寻求帮助12
1.5小结13
第2章环境设置和命令行14
2.1文件系统14
2.1.1Python中的路径15
2.1.2主目录16
2.1.3当前工作目录16
2.1.4绝对路径和相对路径17
2.2程序和进程18
2.3命令行18
2.3.1打开终端窗口19
2.3.2使用命令行运行程序20
2.3.3使用命令行参数21
2.3.4在命令行中使用-c运行Python代码22
2.3.5从命令行运行Python程序23
2.3.6运行py.exe程序23
2.3.7在Python程序中运行命令23
2.3.8使用Tab补全命令减少输入量24
2.3.9查看历史命令24
2.3.10使用常用命令25
2.4环境变量和PATH32
2.4.1查看环境变量32
2.4.2使用PATH环境变量33
2.4.3更改命令行的PATH环境变量34
2.4.4在Windows上将文件夹永久添加到PATH34
2.4.5在macOS和Linux上将文件夹永久添加到PATH35
2.5不借助命令行运行Python程序36
2.5.1在Windows上运行Python程序36
2.5.2在macOS上运行Python程序37
2.5.3在UbuntuLinux上运行Python程序37
2.6小结38
第二部分最佳实践、工具和技巧
第3章使用Black进行代码格式化40
3.1让程序员招人烦的错误做法40
3.2风格指南和PEP841
3.3水平间距41
3.3.1使用空格进行缩进41
3.3.2行内间距42
3.4垂直间距45
3.4.1垂直间距示例46
3.4.2垂直间距的最佳实践46
3.5Black:毫不妥协的代码格式化工具48
3.5.1安装Black48
3.5.2在命令行中运行Black48
3.5.3对部分代码禁用Black51
3.6小结52
第4章选择易懂的名称53
4.1命名风格54
4.2PEP8的命名风格54
4.3适当的名称长度54
4.3.1太短的名称55
4.3.2太长的名称56
4.4起易于搜索的名称57
4.5避免笑话、双关语和需要文化背景才能理解的词汇57
4.6不要覆盖内置名称58
4.7史上最差的变量名59
4.8小结59
第5章揪出代码的坏味道61
5.1重复的代码61
5.2魔数63
5.3注释掉的代码和死代码65
5.4打印调试67
5.5带有数字后缀的变量67
5.6本该是函数或者模块的类68
5.7嵌套列表解析式69
5.8空的except块和糟糕的错误信息70
5.9代码坏味道的谬误71
5.9.1谬误:函数应该仅在末尾处有一个return语句72
5.9.2谬误:函数最多只能有一个try语句72
5.9.3谬误:使用flag参数不好73
5.9.4谬误:全局变量不好73
5.9.5谬误:注释是不必要的74
5.10小结75
第6章编写Python风格的代码76
6.1Python之禅76
6.2学着喜欢强制缩进79
6.3使用timeit模块衡量性能80
6.4常被误用的语法82
6.4.1使用enumerate()而不是range()82
6.4.2使用with语句代替open()和close()83
6.4.3用is跟None做比较而不用==84
6.5格式化字符串84
6.5.1如果字符串有很多反斜杠,请使用原始字符串84
6.5.2使用f-string格式化字符串85
6.6制作列表的浅副本86
6.7以Python风格使用字典87
6.7.1在字典中使用get()和setdefault()87
6.7.2使用collections.defaultdict()设置默认值89
6.7.3使用字典代替switch语句89
6.8条件表达式:Python“丑陋”的三元运算符90
6.9处理变量的值92
6.9.1链式赋值和比较运算符92
6.9.2验证变量是否为多个值中的一个93
6.10小结93
第7章编程术语95
7.1定义95
7.1.1作为语言的Python和作为解释器的Python96
7.1.2垃圾回收96
7.1.3字面量97
7.1.4关键字98
7.1.5对象、值、实例和身份98
7.1.6项101
7.1.7可变和不可变101
7.1.8索引、键和哈希值104
7.1.9容器、序列、映射和集合类型106
7.1.10特殊方法107
7.1.11模块和包108
7.1.12可调用对象和头等对象108
7.2经常被混淆的术语109
7.2.1语句和表达式109
7.2.2块、子句和主体110
7.2.3变量和特性111
7.2.4函数和方法111
7.2.5可迭代对象和迭代器112
7.2.6语法错误、运行时错误和语义错误113
7.2.7形参和实参115
7.2.8显式类型转换和隐式类型转换115
7.2.9属性和特性115
7.2.10字节码和机器码116
7.2.11脚本和程序,以及脚本语言和编程语言116
7.2.12库、框架、SDK、引擎、API117
7.3小结117
第8章常见的Python陷阱119
8.1循环列表的同时不要增删其中的元素119
8.2复制可变值时务必使用copy.copy()和copy.deepcopy()125
8.3不要用可变值作为默认参数128
8.4不要通过字符串连接创建字符串130
8.5不要指望sort()按照字母顺序排序131
8.6不要假设浮点数是完全准确的132
8.7不要使用链式!=运算符135
8.8不要忘记在仅有一项的元组中添加逗号135
8.9小结136
第9章Python的奇特难懂之处137
9.1为什么256是256,而257不是257137
9.2字符串驻留138
9.3假的Python增量运算符和减量运算符139
9.4传递空列表给all()141
9.5布尔值是整数值141
9.6链式使用多种运算符143
9.7Python的反重力特性143
9.8小结144
第10章编写高效的函数145
10.1函数名145
10.2函数大小的权衡146
10.3函数的形参和实参148
10.3.1默认参数149
10.3.2使用*和**向函数传参149
10.3.3使用*创建可变参数函数150
10.3.4使用**创建可变参数函数153
10.3.5使用*和**创建包装函数154
10.4函数式编程155
10.4.1副作用155
10.4.2高阶函数157
10.4.3lambda函数157
10.4.4在列表推导式中进行映射和过滤158
10.5返回值的数据类型应该不变159
10.6抛出异常和返回错误码161
10.7小结162
第11章注释、文档字符串和类型提示163
11.1注释164
11.1.1注释风格164
11.1.2内联注释165
11.1.3说明性的注释166
11.1.4总结性的注释166
11.1.5“经验之谈”的注释167
11.1.6法律注释167
11.1.7注释的专业性167
11.1.8代码标签和TODO注释168
11.1.9神奇的注释和源文件编码168
11.2文档字符串169
11.3类型提示171
11.3.1使用静态分析器172
11.3.2为多种类型设置类型提示174
11.3.3为列表、字典等设置类型提示176
11.3.4通过注释向后移植类型提示176
11.4小结177
第12章通过Git管理项目.179
12.1Git提交和仓库179
12.2使用Cookiecutter新建Python项目180
12.3安装Git182
12.3.1配置Git用户名和电子邮件182
12.3.2安装GUIGit工具182
12.4Git的工作流程183
12.4.1Git是如何追踪文件状态的184
12.4.2为什么要暂存文件185
12.5在计算机上创建Git仓库185
12.5.1添加供Git追踪的文件187
12.5.2忽略仓库中的文件188
12.5.3提交修改189
12.5.4从仓库中删除文件193
12.5.5重命名和移动仓库中的文件194
12.6查看提交日志195
12.7恢复历史修改196
12.7.1撤销未提交的本地修改196
12.7.2取消暂存的文件197
12.7.3回滚近期的提交197
12.7.4回滚到单个文件的某次提交198
12.7.5重写提交历史199
12.8GitHub和git推送命令199
12.8.1将一个已存在的仓库推送到GitHub200
12.8.2克隆已存在的GitHub仓库201
12.9小结202
第13章性能测量和大O算法分析203
13.1timeit模块203
13.2cProfile分析器206
13.3大O算法分析208
13.4大O阶208
13.4.1使用书架打比方描述大O阶209
13.4.2大O测量的是最坏情况212
13.5确定代码的大O阶214
13.5.1为什么低阶项和系数不重要215
13.5.2大O分析实例216
13.5.3常见函数调用的大O阶219
13.5.4一眼看出大O阶220
13.5.5当n很小时,大O并不重要,而n通常都很小221
13.6小结.221
第14章项目实战222
14.1汉诺塔.222
14.1.1输出223
14.1.2源代码224
14.1.3编写代码227
14.2四子棋233
14.2.1输出233
14.2.2源代码234
14.2.3编写代码238
14.3小结245
第三部分面向对象的Python
第15章面向对象编程和类248
15.1拿现实世界打比方:填写表格248
15.2基于类创建对象250
15.3创建一个简单的类——WizCoin251
15.3.1方法__init__()和self253
15.3.2特性254
15.3.3私有特性和私有方法255
15.4函数type()和特性__qualname__257
15.5非OOP和OOP的例子:井字棋258
15.6为现实世界设计类是一件难事儿263
15.7小结263
第16章面向对象编程和继承265
16.1继承的原理265
16.1.1重写方法267
16.1.2super()函数269
16.1.3倾向于组合而非继承271
16.1.4继承的缺点272
16.2函数isinstance()和issubclass()274
16.3类方法275
16.4类特性277
16.5静态方法278
16.6何时应该使用类和静态的面向对象特性278
16.7面向对象的行话279
16.7.1封装279
16.7.2多态性279
16.8何时不应该使用继承279
16.9多重继承280
16.10方法解析顺序282
16.11小结283
第17章Python风格的面向对象编程:属性和魔术方法285
17.1属性285
17.1.1将特性转换为属性286
17.1.2使用setter验证数据288
17.1.3只读属性290
17.1.4什么时候应该使用属性291
17.2Python的魔术方法291
17.2.1字符串表示魔术方法292
17.2.2数值魔术方法294
17.2.3反射数值魔术方法297
17.2.4原地魔术方法299
17.2.5比较魔术方法301
17.3小结305