产品特色
编辑推荐
知乎、CSDN等各大论坛技术大牛推荐的Python自学入门畅销书《笨办法学Python》重磅升级,所有案例均基于Python3.6编写。
免费提供长达5个小时的配套教学视频,用手机扫码在线观看视频,更方便。
Zed A. Shaw创建了一套非常有效的Python 3学习体系,只要跟着学,你就会像Zed教过的数百万初学者一样获得成功!只要你能自律、投入和坚持!
在本书中,你将通过完成52个精心设计的习题来学会Python语言。阅读这些习题,照着录入代码(不要复制和粘贴!),修正自己的错误,观察程序的运行。在这个过程中,你将学会计算机的工作原理,知道怎样的程序才算是好程序,以及如何读、写和思考代码。作者还提供了5个多小时的视频,教你如何破坏、修正和调试代码,整个过程就像一边做题一边直播一样。一开始会很难,但很快你就会上手,并且会感觉很棒!
本书适合以下人群阅读
● 零编程经验的初学者
● 了解一两门编程语言的初级人员
● 多年未写过代码的转岗专业人员
● 有丰富的编程经验,想通过快速、简单的速成课程了解Python 3的专业人员
内容简介
本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。
本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较进阶的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。
作者简介
作者简介
泽德 A. 肖(Zed A.Shaw)是《“笨办法”学Python》《“笨办法”学Ruby》《“笨办法”学C语言》等几本备受欢迎的图书的作者,他的书在全世界有数百万读者。他还是诸多开源项目的创建者,拥有近20年的编程和写作经验。他大部分空闲时间致力于绘画和艺术史的研究。
译者简介
王巍巍是一名受软件和编程的吸引,中途转行上岗的软件从业人员。代码和翻译是他的两大爱好,此外他还喜欢在网上撰写和翻译一些不着边际的话题和文章。如果读者对书中的内容有疑问,或者发现了书中的错误,再或者只是想随便聊聊,请通过电子邮件与其联系。
目录
习题0 准备工作 1
macOS 1
Windows 2
Linux 3
网上搜索 4
给新手的告诫 5
可选文本编辑器 5
习题1 第 一个程序 7
应该看到的结果 8
巩固练习 10
常见问题回答 11
习题2 注释和#号 12
应该看到的结果 12
巩固练习 12
常见问题回答 13
习题3 数字和数学计算 14
应该看到的结果 15
巩固练习 15
常见问题回答 16
习题4 变量和命名 17
应该看到的结果 18
巩固练习 18
常见问题回答 19
习题5 更多的变量和打印 20
应该看到的结果 21
巩固练习 21
常见问题回答 21
习题6 字符串和文本 22
应该看到的结果 23
巩固练习 23
破坏程序 23
常见问题回答 24
习题7 更多打印 25
应该看到的结果 25
巩固练习 26
破坏程序 26
常见问题回答 26
习题8 打印,打印 27
应该看到的结果 27
巩固练习 28
常见问题回答 28
习题9 打印,打印,打印 29
应该看到的结果 29
巩固练习 30
常见问题回答 30
习题10 那是什么 31
应该看到的结果 32
转义序列 32
巩固练习 33
常见问题回答 33
习题11 提问 34
应该看到的结果 34
巩固练习 35
常见问题回答 35
习题12 提示别人 36
应该看到的结果 36
巩固练习 36
常见问题回答 37
习题13 参数、解包和变量 38
等一下!“特性”还有另外一个名字 38
应该看到的结果 39
巩固练习 40
常见问题回答 40
习题14 提示和传递 41
应该看到的结果 41
巩固练习 42
常见问题回答 42
习题15 读取文件 44
应该看到的结果 45
巩固练习 45
常见问题回答 46
习题16 读写文件 47
应该看到的结果 48
巩固练习 49
常见问题回答 49
习题17 更多文件操作 50
应该看到的结果 51
巩固练习 51
常见问题回答 52
习题18 命名、变量、代码和函数 53
应该看到的结果 54
巩固练习 55
常见问题回答 55
习题19 函数和变量 56
应该看到的结果 57
巩固练习 57
常见问题回答 57
习题20 函数和文件 59
应该看到的结果 60
巩固练习 60
常见问题回答 60
习题21 函数可以返回某些东西 62
应该看到的结果 63
巩固练习 63
常见问题回答 64
习题22 到现在为止你学到了什么 65
学到的东西 65
习题23 字符串、字节串和字符编码 66
初始研究 66
开关、约定和编码 68
解剖输出 69
解剖代码 70
深度接触编码 72
破坏程序 72
习题24 更多的练习 74
应该看到的结果 75
巩固练习 75
常见问题回答 76
习题25 更多更多的练习 77
应该看到的结果 78
巩固练习 79
常见问题回答 80
习题26 恭喜你,现在可以考试了! 81
常见问题回答 81
习题27 记住逻辑关系 82
逻辑术语 82
真值表 83
常见问题回答 84
习题28 布尔表达式练习 85
应该看到的结果 86
巩固练习 87
常见问题回答 87
习题29 if语句 88
应该看到的结果 89
巩固练习 89
常见问题回答 89
习题30 else和if 90
应该看到的结果 91
巩固练习 91
常见问题回答 91
习题31 作出决定 92
应该看到的结果 93
巩固练习 93
常见问题回答 94
习题32 循环和列表 95
应该看到的结果 96
巩固练习 97
常见问题回答 97
习题33 while循环 98
应该看到的结果 99
巩固练习 99
常见问题回答 100
习题34 访问列表的元素 101
巩固练习 102
习题35 分支和函数 103
应该看到的结果 105
巩固练习 105
常见问题回答 105
习题36 设计和调试 107
if语句的规则 107
循环的规则 107
调试的小技巧 108
家庭作业 108
习题37 复习各种符号 109
关键字 109
数据类型 110
字符串转义序列 111
老式字符串格式 111
运算符 112
阅读代码 113
巩固练习 114
常见问题回答 114
习题38 列表的操作 115
应该看到的结果 117
列表可以做什么 117
什么时候使用列表 118
巩固练习 118
常见问题回答 119
习题39 字典,可爱的字典 120
字典的例子 121
应该看到的结果 123
字典可以做什么 124
巩固练习 124
常见问题回答 124
习题40 模块、类和对象 125
模块和字典差不多 125
类和模块差不多 126
对象和import差不多 127
获取某样东西里包含的东西 128
第 一个类的例子 128
应该看到的结果 129
巩固练习 129
常见问题回答 130
习题41 学习面向对象术语 131
专有词汇练习 131
措辞练习 131
混合巩固练习 132
阅读测试 132
练习从语言到代码 134
阅读更多代码 135
常见问题回答 135
习题42 对象、类及从属关系 136
代码写成什么样子 137
关于class Name(object) 139
巩固练习 139
常见问题回答 139
习题43 基本的面向对象分析和设计 141
简单游戏引擎的分析 142
自顶向下与自底向上 146
《来自Percal 25号行星的哥顿人》
的代码 146
应该看到的结果 153
巩固练习 153
常见问题回答 154
习题44 继承与组合 155
什么是继承 155
要用super()的原因 160
组合 160
继承和组合的应用场合 162
巩固练习 162
常见问题回答 162
习题45 你来制作一款游戏 164
评价你的游戏 164
函数的风格 165
类的风格 165
代码风格 166
好的注释 166
为你的游戏评分 166
习题46 项目骨架 168
macOS/Linux配置 168
Windows 10配置 170
创建骨架项目目录 171
测试你的配置 173
使用这个骨架 174
小测验 174
常见问题回答 174
习题47 自动化测试 176
编写测试用例 176
测试指南 178
应该看到的结果 178
巩固练习 179
常见问题回答 179
习题48 用户输入进阶 180
我们的游戏词汇 180
测试优先挑战 182
应该测试的东西 183
巩固练习 185
常见问题回答 185
习题49 创建句子 186
match和peek 186
句子的语法 187
关于异常 187
语法分析器代码 187
尝试语法分析器 190
应该测试的东西 191
巩固练习 191
常见问题回答 191
习题50 你的第 一个网站 192
安装flask 192
写一个简单的“Hello World”项目 192
发生了什么 194
修正错误 194
创建基本的模板文件 195
巩固练习 197
常见问题回答 197
习题51 从浏览器中获取输入 198
Web的工作原理 198
表单的工作原理 200
创建HTML表单 201
创建布局模板 203
为表单撰写自动测试代码 205
巩固练习 206
破坏程序 206
习题52 创建Web游戏 207
重构习题43中的游戏 207
创建引擎 212
期末考试 215
常见问题回答 215
接下来的路 217
怎样学习任何一种编程语言 218
老程序员的建议 219
附录 命令行快速入门 221
简介:废话少说,命令行来也 221
练习1 准备工作 222
练习2 路径、文件夹和目录(pwd) 225
练习3 如果你迷失了 227
练习4 创建目录(mkdir) 228
练习5 更改目录(cd) 230
练习6 列出目录中的内容(ls) 234
练习7 删除目录(rmdir) 238
练习8 在多个目录中切换(pushd和popd) 241
练习9 创建空文件(touch/New-Item) 243
练习10 复制文件(cp) 244
练习11 移动文件(mv) 248
练习12 查看文件内容(less/more) 250
练习13 流文件内容显示(cat) 251
练习14 删除文件(rm) 252
练习15 退出终端(exit) 254
命令行接下来的路 255
揭秘代码的艺术:从零开始的Python 3编程之旅 你是否曾对那些能让计算机听从指挥、完成各种神奇任务的程序感到好奇?你是否渴望拥有创造数字世界的技能,将你的想法转化为现实?那么,这本书将是你迈向编程殿堂的理想起点。 本书旨在引领读者,无论你是否拥有任何编程经验,都能循序渐进地掌握Python 3这门强大而富有表现力的编程语言。我们将以一种系统、扎实的方式,从最基础的概念讲起,逐步深入到更复杂的主题,让你在理解原理的同时,也能熟练运用Python来解决实际问题。我们坚信,真正的理解源于实践,因此,本书充满了丰富的代码示例、动手练习以及挑战性的项目,让你在“玩”中学习,在“做”中成长。 第一部分:编程思维的启蒙与Python的基石 在踏入代码的世界之前,我们首先要培养一种“计算思维”。这是一种将复杂问题分解成更小、更易于管理的部分,并用逻辑步骤来解决问题的能力。我们将从这里开始,探讨什么是算法,如何思考和设计一个解决问题的流程。 随后,我们将正式引入Python 3。你将了解Python的独特之处——它的简洁语法、易读性以及在各种领域广泛的应用前景。我们会详细介绍如何安装Python环境,让你能够在自己的电脑上开始编写第一个“Hello, World!”程序。 接着,我们将深入Python的基础语法。变量是什么?如何声明和使用它们?数据类型又是如何划分的?我们将详细讲解数字(整数、浮点数)、字符串、布尔值等基本数据类型,以及它们之间的运算。你将学习如何进行算术运算、比较运算以及逻辑运算,理解这些操作符在程序中的作用。 条件语句是程序控制流程的关键。我们将详细讲解`if`、`elif`和`else`语句,学习如何根据不同的条件执行不同的代码块。通过大量示例,你将掌握如何构建复杂的条件逻辑,让你的程序能够根据输入和情况做出智能的判断。 循环是重复执行任务的强大工具。我们将介绍`for`循环和`while`循环,以及如何有效地使用它们来遍历序列、处理集合数据。你将学会如何控制循环的执行,如何使用`break`和`continue`语句来改变循环的行为,从而避免无限循环并优化代码效率。 第二部分:组织代码的艺术——函数与模块 随着我们编写的代码变得越来越复杂,如何有效地组织和管理它们就变得至关重要。函数就是解决这个问题的核心。我们将深入讲解函数的概念,包括如何定义函数、传递参数、返回值以及函数的作用域。你将学会如何将重复的代码块封装成函数,提高代码的可读性和复用性,从而让你的程序更加模块化和易于维护。 Python拥有丰富的内置函数,但更强大的是其模块化系统。我们将介绍Python的标准库,以及如何导入和使用其中的模块,例如处理数学运算的`math`模块、处理日期和时间的`datetime`模块等。你将学会如何利用现有的工具来加速开发,而不是重复造轮子。 此外,我们还会引导你了解如何创建自己的模块,将相关的函数和变量组织起来,方便在不同的项目中重复使用。理解模块化编程是构建大型、复杂应用程序的基础。 第三部分:数据结构——存储与操作信息的强大工具 数据是编程的核心。如何有效地存储和操作数据,是衡量一个程序员技能的重要标准。本书将重点介绍Python中的核心数据结构。 列表(List)是最常用的序列类型,我们将详细讲解如何创建、访问、修改和删除列表元素。你将学习切片操作,以及各种列表方法,例如`append()`, `insert()`, `remove()`, `sort()`等。 元组(Tuple)与列表类似,但它是不可变的。我们将解释元组的使用场景,以及它与列表在性能和功能上的区别。 字典(Dictionary)是一种键值对的存储结构,非常适合存储和查找关联数据。你将学习如何创建字典、访问、添加、删除键值对,以及遍历字典。字典在数据处理和配置管理中有着广泛的应用。 集合(Set)是一种无序且不重复的元素集合。我们将介绍集合的创建、添加、删除元素,以及集合运算,如并集、交集、差集等。集合在去重和高效成员判断方面表现出色。 掌握这些数据结构,你就能更灵活、更高效地处理各种类型的数据,为后续更复杂的编程任务打下坚实的基础。 第四部分:面向对象编程的入门 面向对象编程(OOP)是一种强大的编程范式,它将数据和操作数据的方法封装在一起,形成“对象”。我们将从概念上解释类(Class)和对象(Object)的区别,以及如何定义自己的类,创建类的实例。 你将学习如何使用构造函数(`__init__`)来初始化对象的属性,如何定义方法来操作对象的数据。我们还将介绍继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)这OOP的三大特性,帮助你理解如何构建更具扩展性和可维护性的代码。虽然面向对象编程可能初看起来有些抽象,但通过大量的实例和练习,你会逐渐领悟其中的精妙之处。 第五部分:异常处理与文件操作 在实际编程中,错误是不可避免的。学会如何优雅地处理异常,是编写健壮程序的关键。我们将介绍Python的异常处理机制,包括`try`、`except`、`else`和`finally`语句。你将学会如何捕获和处理各种预期的错误,避免程序意外崩溃,并向用户提供有用的错误信息。 文件操作是任何应用程序都离不开的功能。我们将详细讲解如何读取文本文件、写入文本文件,以及如何处理二进制文件。你将学习如何打开、关闭文件,如何逐行读取,如何使用`with`语句来确保文件被正确关闭。通过文件操作,你可以实现数据的持久化存储和读取,为程序增加更多实际应用的可能性。 第六部分:常用库的探索与实践 Python的强大之处还在于其庞大而活跃的第三方库生态系统。本书将为你打开一扇通往这些宝库的大门。 你将初步了解一些在数据科学、Web开发、自动化脚本等领域非常流行的库,例如: NumPy:用于高性能数值计算,特别是对大型多维数组和矩阵进行操作。 Pandas:强大的数据分析和处理库,提供了DataFrame等数据结构,极大地简化了数据清洗、转换和分析的过程。 Matplotlib/Seaborn:用于数据可视化,能够创建各种精美的图表,帮助你直观地理解数据。 Requests:用于发送HTTP请求,方便地与Web API进行交互。 BeautifulSoup:用于解析HTML和XML文档,是进行网页信息抓取的有力工具。 通过这些库的介绍和示例,你将看到Python在解决实际问题时的巨大威力,并能够根据自己的兴趣和需求,进一步深入探索。 第七部分:项目实践与进阶 理论学习固然重要,但只有通过实际项目的磨练,才能真正掌握编程技能。本书的最后部分将引导你完成一系列不同难度和类型的项目。 你将有机会独立或在指导下,完成诸如: 一个简单的命令行小游戏(如猜数字、石头剪刀布)。 一个自动化脚本,用于处理日常文件任务。 一个数据分析小工具,用于处理和可视化CSV文件。 一个简单的Web爬虫,用于获取特定网页的信息。 这些项目将整合你在本书中学到的所有知识点,让你在解决实际问题的过程中,巩固和深化对Python的理解。我们会提供清晰的项目思路、关键代码片段以及可能的实现路径,鼓励你独立思考和动手实践。 本书的特点: 循序渐进:从最基础的概念开始,逐步深入,确保每个学习者都能跟上节奏。 强调实践:大量的代码示例、练习题和项目,让你在动手实践中掌握知识。 清晰易懂:用简洁明了的语言解释复杂的概念,避免使用过于专业的术语。 注重原理:不仅教你“如何做”,更解释“为什么这样做”,帮助你理解代码背后的逻辑。 全面覆盖:从Python基础语法到面向对象,再到常用库和项目实践,为你提供一个全面的学习路径。 谁适合阅读这本书? 完全零基础的编程新手:如果你从未接触过编程,这本书将为你打开一扇全新的大门。 希望转行进入IT行业的学习者:Python是目前最受欢迎的编程语言之一,掌握它将为你打开职业发展的新机遇。 对数据科学、Web开发、自动化等领域感兴趣的读者:Python是这些领域的首选语言。 需要提升编程技能的学生和职场人士:本书将帮助你构建坚实的Python基础。 开始你的编程之旅吧! 拿起这本书,你将不仅仅是学习一门编程语言,更是学习一种解决问题的思维方式,一种创造数字世界的工具。我们相信,通过本书的学习,你将能够自信地编写Python代码,并将你的创意转化为令人惊叹的应用程序。现在,就让我们一起踏上这场激动人心的Python编程之旅!