
一本有趣、有用、好学的Python 编程书!本书以通俗易懂的语言、好玩有趣的案例让读者轻轻松松、循序渐进地从零开始掌握Python 3 编程。本书内容也是笔者带领的“Python 实战圈”里数千名“圈友”的学习结晶。圈子里的小伙伴都是零基础开始学习Python 编程,甚至之前没有接触过编程的,比如初中生、跨行业学习者等。本书提供了一套完整的、系统的Python 基础课,比如列表、if、函数等内容,每一部分内容除了有生动有趣的项目实战,还有实际工作中需要注意的问题。既能让零基础的读者更好地学习,也能让有一定基础的读者继续提升自身水平。本书适合零基础学习Python 编程的读者,想要入门人工智能领域的读者,立志进入数据分析编程领域的读者,计划加入Python 网页工程师或游戏工程师的读者,Python 爱好者等。
Python 编程语言是容易学习且功能强大的语言,只要会用微信聊天、懂一点英文单词即可学会。另外,面对同样一个功能,其他编程语言的代码行数可能是几十行,甚至几百行,而Python 语言只要几行代码即可实现。一般情况下,Python 的代码量是Java 语言代码量的1/5。因此,人生苦短,我用Python,多留点时间做其他有意义的事情。 由于人工智能的火热,Python 语言成了目前最热门的编程语言之一。尤其是无人驾驶汽车的出现,更增加了人们对人工智能的关注。你有没有想过,在不久的将来,自己也可以加入人工智能领域,用自己的智慧和才干“智”造一些对社会、对身边人有用的产品,并且进一步提高生活品质呢?据悉,年薪50 万元的工作的大门已经向应届生打开了。入门人工智能的首要条件就是学习Python 编程,因为Python 是人工智能领域的首选语言。那么,Python 难学吗?作为初学者该如何入门呢? 本书正是针对真正零基础的读者打造的。本书不但提供了Python 基础内容,还总结了“Python 实战圈”里数千名圈友在学习Python 编程过程中经常遇到的错误,所以本书是对“Python 实战圈”圈友们实战学习内容的一次系统梳理。本书还结合了笔者多年的编程经验,给出了编程注意事项及经常用到的基础语法点。希望本书能帮助更多想要入门Python 编程的朋友。 特色定位 本书是真正实现从零开始学习Python 编程的实战教材。 大部分学生读者每天学习8 小时,7 天即可完成本书的全部学习内容;上班族读者每天学习2 小时,28 天完成本书的全部学习内容,并且是高质量完成的。也就是说,读者只需56 个小时即可学完本书的全部内容,虽然学习时间短,但是本书涉及的知识点并没有减少。每一部分内容除了有项目实战,还有实际工作中需要注意的问题。既能让零基础的朋友更好地学习,也能让有一定基础的朋友提升自身的Python 编程水平。实战项目灵活、生动、有趣,帮助读者在不知不觉中掌握所有的知识点。 读者对象 ?? 零基础入门Python 编程的读者。 ?? 非程序员的零基础人员。 ?? 计划为进入人工智能领域打好Python 基础的读者 ?? 适合任何年龄的读者 ?? Python 爱好者。 学习建议 一旦开始本书的学习,笔者希望你能坚持下去。在“Python 实战圈”,有很多零基础的文科生、体育生或者艺术生,他们从来没有写过一行代码,或者说不知道写代码是什么事情,经过7 天的训练都掌握了Python 编程,并且可以独立完成小项目,为自己后续的学习(例如数据分析实战、人工智能应用)打下了坚实的基础。 如如何克服从入门到放弃 最好的方法是和身边的朋友一起学习,找一群志同道合的朋友一起学习本书。在“Python实战圈”,有的圈友在出差的高铁上学习,有的圈友在加班回家后仍然坚持学习到凌晨2 点,有的全职妈妈等孩子睡着了以后再学习到深夜。这些励志的人和事都会影响、激励自己坚持学习。如果你中间放弃学习了,重新开始时就会发现之前学习的内容已经完全忘记了,又要从零开始,如此反复,既浪费时间,也打击信心。所以,学习需要和身边的同学、朋友一起坚持,互相督促。学习过程中遇到问题及时解决,下面是笔者总结的解决问题三步走策略。 三步走解决学习过程中遇到的问题 第一步,独立思考,反复阅读书中的基础内容。笔者希望你能把本书当作课本,仔细阅读和理解,不怕慢,只怕不认真,独立解决问题会让知识记忆得更牢固。 第二步,希望你能牢记百度、知乎。感谢百度和知乎这两家伟大的公司,给我们提供了轻松搜索解决方案的地方。Python 语言已经存在了很多年,大部分的问题都可以在网上搜索到答案。关于搜索的方法,你可以直接把出错的英文单词放在百度上搜索,然后逐个查看结果。如果你实在搜索不到问题的答案,那么笔者建议你进行第三步。 第三步,关注微信公众号(data_circle)或者加入“Python 实战圈”与笔者一起讨论,或者请教圈里比较厉害的朋友。 英语不是学习Python编程的障碍n 编程的障碍 Python 编程语言是外国人发明的,我们免不了要会一点英语才能学会它。在Python 编程中,英语主要体现在两个地方。第一个是Python 语法中的英语单词,比如if、while、class 等。这些只要英语有初中水平即可学习。另外对于变量的起名,你可以使用汉语拼音,不一定非得使用英语单词。第二个是Python 错误提示,也就是代码出错时,提示的单词可能稍微复杂一点,但是错误的类型就那么几个,多查几个单词即可学会。在此笔者建议你在电脑中安装翻译词典,遇到不会的单词立即查看并记住。希望你不要因为英文不好而放弃学习Python 编程。 学习Python 编程过程中牢记三个字——写、背、练 写的意思是把书中所有代码独自写一遍。一定不要偷懒,感觉自己对某个知识点学会了,但是真正写起来是不一样的。写代码的过程也是你重新思考的过程。也许你会发现同一个知识点有更好的实现方法,这就融会贯通了。编程不需要千篇一律,只要实现功能,代码高效并且完成漂亮即可。在写代码的过程中,笔者建议你把每一天学习的内容整理成思维导图。画思维导图也是一种提高思维能力的方法。等你学完本书时,整个Python 基础内容就完全在你的思维导图里了,此时,你联系笔者(关注微信公众号data_circle)将会获得一份小小的神秘礼物。 背的意思是背诵。虽然Python 编程是理科生的学习内容,但是里面有很多固定语法,比如什么是列表、什么是循环,以及如何定义函数等。笔者在书中已经用语法标出,这部分内容需要牢记。但是背诵并不是真的如背诵唐诗一样,这里的背诵是简单记住。也可以通过多写几遍书中的代码来记住它们。Python 基础内容中非常重要的就是语法部分,如果语法不会,那么很难学会编程,希望你在学习的过程中注意学习语法。 练的意思是写项目练习的内容。学Python 最快的方法是动手做项目。书中给出了8个项目练习,建议大家先根据学到的基础内容独自完成,再参考书中的答案。需要指出的是,书中的每一个项目都有很多种实现方法,大家的方法也许会比书中给出的好。 在此也希望你能根据每天学习的内容,独立完成项目练习。如果遇到任何问题或者难点,那么请关注微信公众号(data_circle)或者扫码加入“Python 实战圈”,与数千名圈友一起学习,每天根据进度要求打卡,并且提交作业。笔者会用心批阅每一份作业,给出修改建议。最后,希望你通过本书的学习,彻底学会Python 基础内容,能看懂其他人的代码,以后无论遇到什么项目都可以独立完成。 如果你已经有了一定的基础,那么笔者建议你可以把本书当作工具书,需要的时候去查阅相关内容。比如你忘记了如何使用函数返回多个值,你可以找到该部分内容进行学习,反复阅读本书知识点,每一次都有不同的收获。 致谢 在写书的过程中,笔者得到了大量的帮助。 感谢“Python 实战圈”的数千名圈友,没有他们的鼓励和一起学习的氛围,笔者不可能完成此书的写作。 感谢妻子,在写书期间给了笔者很多支持和鼓励,还帮笔者调整了初稿文档的格式。 感谢数据君、爱数圈圈友的大力支持,在笔者写作过程中提出了很多意见,如果没有他们的督促,那么本书的写作也不会这么顺利地完成。 感谢慧敏编辑,在书稿的审核过程中给笔者提供了很多修改意见。 感谢为本书撰写推荐语的各位老师,感谢你们对本书的支持和推荐。 感谢在笔者学习过程中,给过笔者帮助的每个人。 感谢为本书做出贡献的每个人! 读者服务 本书提供四大答疑服务,为你的Python 学习之路保驾护航。 附赠全书案例的源代码。所有代码放在了微信公众号(data_circle)后台, 关注后回复“附书代码”即可获得全部代码;回复“惊喜”还将获得作者为读者准备的精美见面礼。 作者一对一VIP 服务。请添加作者小码哥微信 data_circle_yoni,获得一对一指导,并且拉入读者微信交流群。 学习交流QQ 群服务。学习过程中遇到任何问题,也可以加入QQ 群(723907431)交流。 与作者深入探讨问题或进一步了解python,请随时电邮作者邮箱724698621@qq.com。
第1 章 如何入门Python 编程 ? 1 1.1 编程语言的择 ? 1 1.2 如何开始学习 ? 1 1.3 学习Python 的捷径 ?2 1.4 Python 版本的选择 2 1.5 Python 相关就业方面的选择 2 1.5.1 Web 网页工程师方向 ? 3 1.5.2 网络爬虫工程师方向 ? 3 1.5.3 自动化运维方向 ? 3 1.5.4 数据分析师方向 ? 3 1.5.5 游戏开发方向 ? 3 1.5.6 自动化测试方向 ? 4 1.5.7 AI 方向 ? 4 1.6 注意事项 ? 4 1.6.1 牢记搜索 4 1.6.2 学一点简单的英语 4 第2 章 Python“三剑客”,你会用哪个 ? 5 2.1 什么是Python“三剑客” ? 5 2.2 为Windows 系统安装Python 软件 ?6 2.2.1 下载地址 6 2.2.2 安装 ? 6 2.2.3 开始使用 9 2.3 为macOS 系统安装Python 软件 10 2.4 PyCharm 简介 11 2.4.1 下载地址 ? 11 2.4.2 安装 ?? 12 2.4.3 开始使用 ? 13 2.5 Anaconda 简介 ? 17 2.5.1 下载地址 ? 18 2.5.2 安装 ?19 2.5.3 如何使用Anaconda 20 2.6 Jupyter Notebook 简介 ?23 2.6.1 Jupyter Notebook 是什么 ? 23 2.6.2 安装 ?24 2.6.3 启动 ? 24 2.6.4 创建文件 ? 25 2.6.5 如何写代码 26 第3 章 夯实Python 基础,为进阶做准备 ? 27 3.1 第一次写代码 27 3.2 数据——程序的原材料 28 3.3 学会写注释,方便你我他 ?? 28 3.4 常量与变量 ? 29 3.4.1 变量命名规则 ? 30 3.4.2 变量命名方法 ? 30 3.5 数字类型 ? 31 3.5.1 整数 ? 31 3.5.2 浮点数 ? 32 3.6 布尔类型 ? 34 3.7 字符串类型 ? 35 3.7.1 什么是字符串 ? 35 3.7.2 字符串的基本用法 ? 36 3.7.3 字符串的常见运算 ? 36 3.7.4 字符串的切片 ? 38 3.7.5 各种类型之间的转换 39 第4 章 Python 数据结构原来并不难 ? 41 4.1 什么是数据结构 ? 41 4.2 列表 ? 41 4.2.1 什么是列表 41 4.2.2 列表的基本操作 ? 42 4.2.3 列表的高级用法 ? 49 4.3 元组 ? 52 4.3.1 创建元组 ? 52 4.3.2 修改元组 ? 54 4.3.3 元组拆包 ? 55 4.3.4 元组方法 ? 58 4.3.5 元组与列表的区别 ? 58 4.4 项目练习:用列表创建《延禧攻略》之魏璎珞宴请名单 59 4.4.1 描述项目 ? 59 4.4.2 解析项目 ? 60 4.4.3 实现功能 ? 60 4.5 字典 ? 65 4.5.1 什么是字典 65 4.5.2 字典特性 ? 65 4.5.3 字典的基本操作 ? 66 4.5.4 内置字典函数与方法 70 4.6 结合字典与列表 ?72 4.6.1 字典列表 ? 72 4.6.2 在字典中存储列表 ? 72 4.6.3 在字典中存储字典 ? 73 4.7 项目练习:用字典管理电视剧《扶摇》的演员信息 ? 73 4.7.1 描述项目 ? 73 4.7.2 解析项目 ? 74 4.7.3 实现功能 ? 75 第5 章 Python 控制结构,厉害了 ? 80 5.1 Python 运算符与表达式 ? 80 5.1.1 算术运算符 80 5.1.2 比较(关系)运算符 81 5.1.3 赋值运算符 82 5.1.4 位运算符 ? 83 5.1.5 逻辑运算符 84 5.1.6 成员运算符 85 5.1.7 身份运算符 86 5.1.8 浅拷贝与深拷贝 ? 89 5.1.9 运算符优先级 ? 91 5.2 Python 的三大控制结构 ? 93 5.3 顺序结构 ? 93 5.4 分支结构 ? 94 5.5 循环结构 ? 97 5.6 for 循环 ? 98 5.6.1 for 循环与列表 ? 99 5.6.2 for 循环与字典 ? 102 5.6.3 嵌套for 循环 ?103 5.6.4 项目练习:运用for 循环生成九九乘法表 104 5.7 列表解析式 ??105 5.7.1 概念 105 5.7.2 指定if 条件的列表解析式 106 5.7.3 无条件的列表解析式 ? 109 5.7.4 嵌套循环的列表解析式 ? 109 5.7.5 字典解析式 ? 111 5.8 while 循环 ? 114 5.8.1 用户输入 ? 115 5.8.2 break 与continue 语句 115 5.8.3 使用while 循环操作列表和字典 ?116 5.9 项目练习:运用Python 控制结构创建通讯录 ? 118 5.9.1 描述项目 ?118 5.9.2 解析项目 ?118 5.9.3 实现4 个功能 119 第6 章 Python 函数,给你不一样的介绍 122 6.1 什么是函数 ? 122 6.1.1 为什么要用函数 123 6.1.2 如何定义函数 124 6.1.3 如何调用函数 125 6.2 如何传递参数 ? 126 6.2.1 传递实参 ? 127 6.2.2 传递数据结构 130 6.3 返回值 ? 131 6.3.1 return 语句 ?131 6.3.2 返回多个值 ? 133 6.4 函数是对象 ? 136 6.4.1 第一类对象 ? 136 6.4.2 函数赋值给变量 136 6.4.3 嵌套函数 ?? 138 6.4.4 函数作为参数 140 6.4.5 将函数放在容器中 ?? 143 6.4.6 函数作为返回值 145 6.5 盒子的秘密 ? 148 6.5.1 LEGB 作用域 ? 148 6.5.2 关键字global ? 150 6.5.3 关键字nonlocal ? 153 6.6 闭包 ? 156 6.6.1 概念 156 6.6.2 __closure__属性 159 6.6.3 为什么使用闭包 160 6.7 三大“神器”之装饰器 ? 162 6.7.1 概念 162 6.7.2 装饰带有参数的函数 ? 166 6.7.3 多个装饰器 ? 169 6.7.4 项目练习:使用装饰器为函数添加计时功能 ? 171 6.8 三大“神器”之迭代器 ? 174 6.9 三大“神器”之生成器 ? 177 6.9.1 生成器表达式 177 6.9.2 关键字yield 179 6.10 匿名函数 ? 182 6.10.1 概念 ? 182 6.10.2 匿名函数的使用场景 183 6.10.3 柯里化 ? 185 6.11 将函数存储在模块中 186 6.12 如何设计函数 ?? 188 6.13 项目练习:运用函数创建自动化管理文件 ? 188 6.13.1 项目描述 188 6.13.2 项目拆解 188 6.13.3 主程序 ? 189 6.13.4 实现管理功能 ?? 190 第7 章 Python 面向对象,简单易懂 ?194 7.1 程序设计方法 ? 194 7.2 面向对象程序设计中的概念 ?? 195 7.3 如何定义类 ? 195 7.3.1 创建类 ?195 7.3.2 创建对象 ?197 7.4 继承 ?199 7.5 导入类 ? 201 7.6 Python 库 203 7.7 类编码风格 ? 203 7.8 项目练习:运用面向对象程序设计方法设计餐馆系统 ?203 7.8.1 项目概述 ?203 7.8.2 项目解析 ?204 7.8.3 源代码实现 ? 204 第8 章 Python 项目实战 208 8.1 项目实战1:运用第三方库设计微信聊天机器人 ? 208 8.1.1 项目目的 ?? 208 8.1.2 Wxpy 库介绍 ? 208 8.1.3 指定聊天对象 211 8.1.4 聊天机器人 ? 212 8.2 项目实战2:开发简化版《阴阳师》游戏 ? 213 8.2.1 项目描述 ?213 8.2.2 项目解析 ?213 8.2.3 欢迎界面 ?213 8.2.4 设计游戏人物 215 8.2.5 介绍游戏场景 219 8.2.6 开始游戏 ?221 8.2.7 判断是否进入下一轮 ? 224 8.2.8 项目总结 ? 224