我们衡量时间的方式有点乱。 一分钟有 60 秒,一小时有 60 分钟。 这源自古代巴比伦,他们以 60 作为数字系统的基础。 一天有 24 小时,一周有 7 天,那么一个月有多少天呢? 嗯,一个月的天数不仅取决于它是哪个月,还取决于你所在的国家使用哪种历法。
那如果我们改用秒来表示时间间隔呢? 这样,我们就能借助公制前缀,把大量的秒写成更容易理解的数量。
如果有一天我们殖民了火星或其他星球,衡量时间会变得更加混乱。 当有人说“年”的时候,指的是地球上的年还是火星上的年?
这个练习的灵感来自作家 Vernor Vinge 的科幻小说 "A Deepness in the Sky"。 在书中,作者用公制作为时间度量的基础。
你的任务是确定某个日期之后一吉秒的日期和时间。
一吉秒等于十亿秒。 也就是 1 后面有 9 个 0。
如果你出生在 2015 年 1 月 24 日 22:00(晚上 10 点),那么到 2046 年 10 月 2 日 23:46:40(晚上 11 点 46 分 40 秒),你就满一吉秒了。
代码被_阅读_的次数往往多于被编写,而在其他文本中读到一个很大/很长的数字可能并不轻松。 下面两种方法可以让数字更易读:
在数字字面量中使用下划线。1_000_000 比 1000000 更易读,10_100_201_330 也比 10100201330 更容易扫读。更多信息请参见 PEP-0515。
使用指数表示法或科学计数法。字母 e(或 E)后面跟一个整数,表示 e 前面的数字要乘以 10 的多少次方(即:1e6 表示 1 乘以 10 的 6 次方,等于 1000000)。更多细节,请查看这份关于科学计数法的参考资料。
本练习将探索 Python datetime 模块中的对象: