Python编程做中学txt电子书

计算机与互联网 [加] 丹尼尔·辛格罗
简介: 一本零基础的Python编程入门书。

第1章

启程

编程就是编写代码来解决问题。因此,我想从一开始就和你一起解决问题。也就是说,我们不是先逐一学习Python概念再来解决问题,而是用问题来决定我们需要学习的概念。

在本章中,我们将解决两个问题:确定一行文字中的单词数(就像字处理软件中的单词数统计功能),以及计算一个圆锥体的体积。解决这些问题需要了解若干Python概念。你可能觉得,需要更多的细节才能完全理解这里介绍的一些内容,以及它们在Python程序中是如何配合的。不必担心,我们将在后面的章节中重新探讨和阐述重要的概念。

1.1

我们要做的事情

正如引言所述,我们将使用Python编程语言解决编程竞赛中的问题。编程评测网站可以提供这些问题。我假定你已经按照引言中的说明安装了Python,并建立了你的编程评测网站账号。

对于每个问题,我们会写一个程序来解决它。每个问题都指定了要提供给该程序的输入类型,以及预期的输出(即结果)类型。如果我们的程序能够接受任意有效的输入并产生正确的输出,那么它就正确地解决了这个问题。

一般来说,输入会有数百万或数十亿种可能。每个这样的输入都被称为一个问题实例。例如,在我们要解决的第一个问题中,输入是一行文本(如“hellothere”或“baabbb aa abab”),而我们的任务是输出该行文本的单词数。编程中强大的想法之一就是:通过少量的通用代码解决看似无尽的问题实例。

无论这一行有2个词、3个词还是50个词,都不重要。我们的程序每次都能解决这个问题。

我们的程序将执行如下3项任务。

输入:我们需要确定待解决问题的具体实例,所以先读取用户提供的输入。

处理:对输入进行处理,以确定正确的输出。

输出:在解决了问题之后,产生期望的输出。

这些步骤之间的界限可能并不总是那么清晰(例如,我们可能需要让一些处理过程和一些输出的产生交错发生),但将这3个一般步骤牢记在心是有帮助的。

你可能每天都在使用遵循这种“输入—处理—输出”模式的程序。考虑一个计算器程序:你输入一个算式(输入),程序进行计算(处理),然后显示答案(输出)。或者考虑一个网络搜索引擎:你输入一个关键词(输入),搜索引擎确定最相关的结果(处理),并显示它们(输出)。

将这些类型的程序与交互式程序进行对比就会发现,交互式程序融合了输入、处理和输出。例如,我正在使用文本编辑器录入这本书。当我输入一个字符时,编辑器会做出反应,将该字符添加到我的文档中。它并不会等我打完整个文档后才显示给我,而是在我建立文档时就交互式地显示出来。我们不会在本书中编写交互式程序。如果你在学习本书后对编写这样的程序感兴趣,那么你会很高兴地发现,Python能胜任这项任务。

每个问题都可以在评测网站中找到。但是,题干的文字描述不会完全一样,因为我为了全书的一致性而重写了题干。不必担心,我所写的内容传达的信息与官方的问题陈述是相同的。

1.2

Python Shell

对于书中的每个问题,我们都希望写一个程序,并将它保存在一个文件中,但前提是我们知道要写什么程序!对于书中的许多问题,我们首先需要学习一些新的Python特性,然后才能解决问题。

若想验证Python特性,可以使用Python Shell。这是一个交互式环境,你输入一些Python代码并按下回车键,Python会向你显示结果。一旦学到了足够的知识来解决当前的问题,我们就不再使用Python Shell,而是在文本文件中输入我们的解决方案。

首先,在你的桌面上创建一个名为programming的新文件夹。我们用这个文件夹来保存我们为本书所做的所有工作。

现在,我们导航到这个programming文件夹,并启动Python Shell。在你想启动Python Shell时,根据你的操作系统,按如下步骤进行。

版权:人民邮电出版社