持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情
使用预定义的软件包
许多有用的模块包作为标准Python库的一部分;我们将在本书的后面部分使用其中的一些。此外,大多数Python发行版都带有标准库中的软件包之外的软件包。蟒蛇3.8的Anaconda发行版附带了600多个软件包!我们将在本书的后面部分使用其中的一些。
在本节中,我们将介绍两个标准包,数学和日历,并给出一些简单的使用示例。顺便说一句,这些包,像所有标准模块一样,使用我们尚未涵盖的Python机制(例如,异常,在第9章中介绍)。
在前面的章节中,我们介绍了近似对数的各种方法。但我们没有向您展示最简单的方法。最简单的方法是简单地导入模块数学。例如,要打印 x base 2 的对数,您需要编写的是
除了包含大约50个有用的数学函数外,数学模块还包含几个有用的浮点常量,例如math.pi和math inf(正无穷大)。
设计用于支持数学规划的标准库模块代表了标准库中的少数模块。
例如,想象一下,您想打印 1949 年 3 月一周中的某几天的文本表示形式,类似于右边的图片。你可以上网,找到那个月和那一年的日历。然后,只要有足够的耐心和大量的反复试验,你可能会设法写一份打印声明来完成工作。或者,您可以简单地编写
或者,如果您希望查看法语,波兰语和丹麦语的日历,则可以编写
这将产生
假设您想知道2033年圣诞节将在一周中的哪一天落下。生产线
将回答问题。对 cal.weekday 的调用将返回一个整数,表示星期几,47 然后使用该整数以英文索引到cal.day_name一周中的某几天列表。现在,假设你想知道2011年美国感恩节落在哪一天。一周中的某一天很容易,因为美国人的感恩节总是在11月48日 查找实际日期稍微复杂一些。首先,我们使用 cal.month日历来获取表示该月周的列表。列表的每个元素都包含七个整数,表示月份中的某一天。如果该月未出现该天,则该周的列表的第一个元素将是 o。例如,如果一个包含 31 天的月份从星期二开始,则列表的第一个元素将是列表 [o, 1, 2, 3, 4, 5, 6],列表的最后一个元素将是 [30, 31, 0, 0, 0, 0, o]。
我们使用 calendar.month日历返回的列表来检查第一周是否有星期四。如果是这样,则第四个星期四是该月的第四周(位于索引3);否则就是在第五周。
练习:编写符合规范定义shopping_days(年)的函数:
练习:自1958年以来,加拿大感恩节一直发生在十月的第二个星期一。编写一个函数,该函数以一年 (>1957) 作为参数,并返回加拿大感恩节和圣诞节之间的天数。
按照惯例,Python程序员通常为1。每行导入一个模块。
2.将所有导入放在程序的开头。
- 首先导入标准模块,然后导入第三方模块(例如,通过 Anaconda 提供的模块),以及最后是特定于应用程序的模块。
有时,将所有导入放在程序的开头会导致问题。导入语句是可执行的代码行,Python 解释器在遇到它时执行它。某些模块包含在导入模块时执行的代码。通常,此代码初始化模块使用的某些对象。由于其中一些代码可能会访问共享资源(例如,计算机上的文件系统),因此在程序中执行导入的位置可能很重要。好消息是,对于您可能使用的模块来说,这不太可能成为问题。