学Python2️⃣9️⃣ import (2)
作者:小号🎺
上次的作业中,希望大家思考一下,观察一下,有关 time ,date ,datetime ,在Python中 import 这几个库的时候,具体有什么规律吗?
不过,小号实话实说,在有关 import 的规则中,涉及到 date 、time 、datetime 的部分(在小号看来)是最没有规律的,最容易让人犯迷糊的。
因为有关 时间、日期 的相关概念和规则,在国家与国家之间、地区与地区之间,经常有很大的差异。就算是国际标准,国际标准也可能要不断更新,国际标准自身也是逐步完善的。另一方面,有关时间、日期的功能又是大家日常高频使用的。这样势必会产生许多矛盾,带来很多麻烦。大家应该都还记得2000年(千禧年),那时有一个“千年虫”问题,让大家困扰了很久。
严格的说,在Python中使用 import 关键字,就是告诉Python:接下来这段代码要使用某一个“第三方库”,且本地电脑上已经安装了这个 库。
假如在事先没有安装的情况下,就在代码中 import,Python静态语法检查时,就会有一个报错。如:
import englishimport americaimport worldimport science
那你一定会问:我事先也没有安装过 time ,也没有安装过 date ,也没有安装过 datetime , 为什么就可以直接 import 它们? 也没有见 Python 报错?
这个问题问得很好。对于这个问题的回答是,date , time , datetime 这几个 库,不是第三方库,是Python自带的“标准库”。是为了大家使用方便,对于日常的需求,Python把很多常用的功能都做成了标准库。因为是“标准库”,也就无需单独安装。
比如,除了有关时间、日期的标准库外,Python中还有以下一些常见的标准库:
math , random , sys , os , json , re …
math 是数学方面的标准库
import mathprint("圆周率π: ", math.pi)
random 是随机数标准库
import randomdef diu_shaizi(): # 投骰子 number = random.randint(1, 6) return number
这许多标准库中,尤其要注意 math 。有许多简单却常用的数学计算,甚至连 math 标准库也不需要。比如
比如,四舍五入,取极大值,极小值
a_lot = 10 / 3pay_money = round(a_lot, 3) # 近似值
price1 = 3price2 = 5choose = max(price1, price2) # 成功人士,只买贵的,不买对的
这些常用的数学计算,需要哪个直接使用,不需要前面带一个 math.xxx
对比一下 datetime ,date , 或者 time ,使用时必须前面带着一个模块名/库名, 如 time.sleep(10) 、datetime.now() 、date.today() 。
也就是说,日期、时间的概念虽然重要,虽然常用,但是 运气 比较差,始终没能 “获得” 一种像 abs() , round() , min() , max() …… 那样的“独立”地位。[捂脸]
再看几个 datetime 的示例:
from datetime import datetimeprint("当前时间:", datetime.now().strftime("%Y-%m-%d%H:%M:%S"))
from datetime import datetimenow = datetime.now()print(f"年: {now.year}")print(f"月: {now.month}")print(f"日: {now.day}")print(f"时: {now.hour}")print(f"分: {now.minute}")print(f"秒: {now.second}")print(f"星期几: {now.weekday()}") # 0=周一, 6=周日print(f"星期几: {now.isoweekday()}") # 1=周一, 7=周日,注意 iso 不是 is
上例中最后一句的 now 后面,注意是 iso , 不是 is 。
好了。今天讲得比较杂,就先到这里吧。
#Python#小号#大白话#大白小号#原创