作业文件

本次实验的作业文件是lab00.py。大家可以使用编程工具打开它。打开lab00.py后,我们首先能看到下面这段代码:

def twenty_twenty_one():
    """Come up with the most creative expression that evaluates to 2021,
    using only numbers and the +, *, and - operators.

    >>> twenty_twenty_one()
    2021
    """
    return ______

上面代码里包含了我们将要完成的第一个题目——2021(这个题目就叫做2021)。看到上面的代码时,你可能是一脸懵逼的。不过不要慌,我们来一步一步理解。

首先,这段代码使用def twenty_twenty_one()定义了一个函数twenty_twenty_one()。如果在实验课前老师还没讲如何定义函数,大家也不用着急。不知道这个知识点也能完成本次实验。不过,在下一次课上你应该就会学到如何定义函数了。

接下来,我们会看到一段被三引号"""包围的文本。我们把这段文本叫做docstring(全称document string,即文档字符串)。它一般被用来描述一个函数应该做什么。在我们twenty_twenty_one的例子中,这段docstring告诉我们:“写出一个富有创造力的表达式,使得计算它的值能得到2021”(当然,在本次实验中没那么有创造力也无妨)。此外,它还要求我们只可以使用数字和加减乘除。

紧接着,我们能看到有一行docstring是以>>>开头的。从这行开始往下的docstring被叫做doctest (举一反三一下,它的全称为什么?——document test)。回想一下大家在前面使用的Python交互模式,>>>被我们称为提示符——它告诉我们可以在它后面输入表达式或者语句。是不是当你在>>>后面输入一个表达式后,Python解释器就会在下一行打印这个表达式的值?doctest就是通过这样的示例来告诉你一个函数会做什么:“当我们在交互模式下这样输入代码,就会得到这样的结果”。在我们twenty_twenty_one的例子中,doctest告诉我们:“当我们在交互模式下输入twenty_twenty_one(),就会得到2021”。

总的来说,docstring和doctest分别使用“描述”和“举例”的手段来告诉我们一个函数的行为。未来在大家完成实验题目的时候,除了阅读实验讲义,也最好读一读它们加深自己的理解。