Python入门的挑战之一在于你可能需要自己在电脑上安装Python及相关软件。如果你熟悉自己的操作系统,而且习惯于命令行界面,那么安装Python不是什么问题。但对于初学者来说,同时学习编程和系统管理命令两件事,有时候是非常痛苦的。
为了避免这个问题,我推荐你开始先在浏览器中运行Python,等熟悉了Python语言之后,我再向你介绍如何在电脑上安装Python。
用于运行Python的网站有不少。如果你已经找到一个喜欢的,就可以直接去用。如果没有,我推荐PythonAnywhere。我在http://tinyurl.com/thinkpython2e上提供了详细的入门指导。
有两个版本的Python,分别为Python 2和Python 3。它们很类似,所以如果你学会了一个版本,也能很容易地切换到另一个版本。实际上,作为初学者,你会遇到的两者之间的区别非常少。本书是针对Python 3编写的,但我也会给出一些关于Python 2的注意事项。
Python解释器是一个读取并执行Python代码的程序。根据所在环境的不同,你可能需要点击程序图标,或者在命令行中键入python
命令来启动解释器。当它启动以后,可以看到如下输出:
Python 3.4.0 (default, Jun 19 2015, 14:20:21)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
前3行文本包含了解释器和所运行的操作系统的信息,所以可能与你看到的有些区别。但你应当检查版本号是否以3开头(本例所示的是3.4.0
),表示你使用的是Python 3的解释器。如果版本号以2开头,那么(你肯定猜到了)解释器是Python 2。
最后一行是一个提示符,表明解释器已经准备好,等待你键入代码。如果你键入一行代码并按下Enter键,解释器会显示结果:
>>> 1 + 1
2
选择Python的理由
Python广泛应用于各种行业中,如数据科学、电影制作、计算机科学教学、IT管理等。还真没有哪个计算领域是Python没有涉及的(或许内核开发除外)。Python因其灵活性、优美而简洁的语法、纯粹的面向对象特性和活跃的社区而备受青睐。强大的社区非常重要,因为这表示Python欢迎新手的加入,也说明有庞大的现成库生态系统可供开发人员利用。
正是出于以上原因,Python有时被认为是一种适合初学者的语言,或许的确如此吧。例如,大多数人都同意Python比C++更容易学习,而且几乎可以肯定,Python的社区对新人更加友善。于是,许多人因为Python平易近人而学习它,他们相当迅速地着手编写所需的程序。但他们可能从未接受过计算机科学方面的教育,而这方面的教育可以教给他们当前所有强大的问题解决技术。如果你是一位了解Python但不熟悉计算机科学的程序员,那么本书正是为你准备的。
还有一部分人长期从事软件开发工作,他们将Python作为第2、3、4、5种语言来学习。对他们而言,在另一种语言中遇到过的老问题将有助于他们提高学习Python的速度。
选择入门书:《“笨办法”学Python 3》,笨办法更简单
在本书的帮助下,你将通过完成下面这些非常简单的事情来学会一门编程语言,这也是每个程序员的必经之路。
1.从头到尾完成每一个习题。
2.一字不差地录入每一段程序。
3.让程序运行起来。
就是这样了。刚开始这对你来说会非常难,但你需要坚持下去。如果你通读本书,每晚花一两个小时做做习题,你可以为自己读下一本编程书打下良好的基础。这本书可能无法让你一夜之间成为一名程序员,但它将会让你踏上学习编程方法的道路。
本书的目的是教会你编程新手需要了解的3种重要的技能:读和写、注重细节以及发现不同。
如何学Python
读和写
很显然,如果你连打字都成问题的话,那你学习编程也会有问题。尤其是,如果你连程序源代码中的那些奇怪字符都敲不出来的话,就更别提编程了。如果没有这些基本技能,你连最基本的软件工作原理都难以学会。
手动录入代码样例并让它们运行起来的过程,会让你学会各种符号的名称,熟悉它们的录入,最终读懂编程语言。
注重细节
区分好程序员和差程序员的最重要的一个方面就是对细节的重视程度。事实上,这是任何行业区分好坏的标准。如果缺乏对工作中每一个微小细节的注意,你的工作成果将不可避免地出现各种关键缺陷。从编程这一行来讲,你得到的结果将会是毛病多多而且难以使用的软件。
通读本书并一字不差地录入书中的每个例子,会训练你在做某件事时把精力集中到自己正在做的事情的细节上。
发现不同
大多数程序员长年累月地工作会培养出一种重要的技能,那就是观察事物间不同点的能力。有经验的程序员拿着两段仅有细微不同的代码,可以立即指出里边的不同点来。程序员甚至发明工具来让这件事更加容易,不过我们不会用这些工具。你要先用笨办法训练自己,然后再使用这些工具。
在做这些习题并且录入每段代码的时候,你一定会犯错,这是不可避免的,即使有经验的程序员也会偶尔出错。你的任务是把自己写的东西和正确答案对比,把所有的不同点都修正过来。这样的过程可以让你对程序里的错误、bug以及其他问题更加敏感。
少瞅多问
只要是写代码,就会写出“bug”(虫子)来。“bug”是你写的代码中的缺陷、错误或者问题。据说早年有一次有人的计算机工作异常,检查后发现是一只蛾子飞到计算机里导致的,于是后来人们就把计算机的问题称为bug了。要修复计算机的问题,就需要对它进行“除虫”,这也是调试(debug)一词的来历。在软件的世界里,bug简直不计其数,真的是太多了。
和那只蛾子一样,你的bug会藏在代码中,而你需要把它们找出来。别以为盯着屏幕上的代码看,“虫子”就会自己爬出来了,你需要更多信息才能找到它们,你需要站起来,挽起袖子找“虫子”。
要找“虫子”,你需要拷问你的代码,问它究竟发生了什么,或者你需要站在不同的角度去看代码。在本书里我多次提到“少瞅多问”,我演示了如何让代码“坦白交代”自己干了什么,如何把拷问的结果变成解决问题的方案。我还演示了各种不同的理解代码的方式,从而让你获得更多信息和洞察力。
不要复制粘贴
你必须手动将每个习题录进去,复制粘贴会让这些习题变得毫无意义。这些习题的目的是训练你的双手和大脑思维,让你有能力读代码、写代码和观察代码。如果你复制粘贴的话,就是在欺骗自己,而且这些习题的效果也会大打折扣。
使用视频教程
本书附带的视频解释了代码的工作原理,以及(更重要的)破坏代码的方法。视频中我会故意破坏代码,再展示修复代码的方法,通过这样的方式,我演示了很多常见错误。我还使用了调试和拷问的手段讲解代码。视频里演示了“少瞅多问”的思路。
更多入门书籍推荐
Python编程快速上手 让繁琐工作自动化
如果你曾经花几小时来重命名文件或更新成千上万个电子表格的单元格,你就知道这样的任务有多繁琐了。如果可以让计算机替你完成呢?
在本书中,你将学习利用Python编程在几分钟内完成手动需要几小时的工作,无须事先具备编程经验。通过阅读本书,你会学习Python的基本知识,探索Python丰富的模块库,并完成特定的任务(例如,从网站抓取数据,读取PDF和Word文档等)。本书还包括有关输入验证的实现方法,以及自动更新CSV文件的技巧。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python程序,自动化地完成很多繁琐的工作,包括:
- 在一个文件或多个文件中搜索并保存同类文本;
- 创建、更新、移动和重命名成百上千个文件和文件夹;
- 下载搜索结果和处理Web在线内容;
- 快速地批量化处理电子表格;
- 拆分、合并PDF文件,以及为其加水印和加密;
- 向特定人群发送提醒邮件和文本通知;
- 同时裁剪、调整、编辑成千上万张图片。
本书手把手地教你完成每个程序,并通过每章(除第1、2章外)末尾的实践项目帮你改进这些程序,使你能用所学的新技能来自动化地完成类似的任务
Python编程无师自通——专业程序员的养成
作者从文科毕业,通过自学编程转行为专业程序员,在硅谷工作多年后成功技术创业。本书不仅教读者如何使用Python语言编程,还会介绍其他书中所忽略的、编程初学者应该了解并掌握的其他所有知识点。
很多初学者在读完其他类似的编程入门图书后,仍会很困惑:下一步该做什么?而本书,就是作者结合自身成功经验给出的答案。
本书每章采用“要点介绍+示例代码+术语总结+挑战练习”的模式,细化介绍编程入门所需的各个知识点。本书中一章所涵盖的许多主题可能都可以独立成书。但作者的目标并不是要读者了解到每个主题的所有细节,而是提供一份指引,一个编程职业发展所需要的所有技能的导览。
本书包括5部分内容:第一部分(第1~11章)介绍了编程基础知识,以及函数、容器、字符串、循环和模型等概念;第二部分(第12~15章)介绍了编程范式和面向对象编程等知识;第三部分(第16~20章)介绍了Bash、正则表达式、包管理器和版本控制等编程工具方面的知识;第四部分(第21~22章)主要涉及数据结构和算法方面的知识;第五部分(第23~27章)则是关于求职与团队协作的内容。
本书可以满足几乎所有想要学习编程的初学者。本书适合高中、大学阶段想要自学编程的学生,以及其他行业想入门编程的人,同时也适合作为编程入门的培训教材。
Python 快速入门(第3版)
本书是Python专业人士Naomi Ceder编写的Python语言的综合指南。她是一位经验丰富的教学者,她既能让读者关注语言的细节,又能使其具备解决实际问题的能力。本书中配有大量贴切的示例和边做边学的习题,有助于读者掌握每一个重要概念。无论读者是要抓取网站内容还是想玩转嵌套元组,都会赞叹本书的清晰、专注和对细节的重视。
本书主要内容
● 明确涵盖Python 3。
● 全面介绍核心库、包和工具。
● 配备精深的习题。
● 新增5章与数据科学相关的内容。
本书专为熟悉编程概念的读者编写,但不要求读者具备Python的使用经验。