理解艾伦·唐尼的“思考Python”第5.14节练习1

理解艾伦·唐尼的“思考Python”第5.14节练习1,python,Python,此练习的链接可在此处访问- 引述问题: 练习1 编写一个脚本,读取当前时间并将其转换为一天中的时间,单位为小时、分钟和秒,加上自纪元以来的天数 此处提供了一种可能的解决方案- 上面提供的解决方案似乎很容易理解,但我对将历元时间转换为一天中的正常时间的计算/公式感到困惑。这几句话最让我困惑: hours = (epoch % seconds_in_a_day) // seconds_in_an_hour + 8 minutes = (epoch % seconds_in_a_day) % sec

此练习的链接可在此处访问-

引述问题:

练习1

编写一个脚本,读取当前时间并将其转换为一天中的时间,单位为小时、分钟和秒,加上自纪元以来的天数

此处提供了一种可能的解决方案-

上面提供的解决方案似乎很容易理解,但我对将历元时间转换为一天中的正常时间的计算/公式感到困惑。这几句话最让我困惑:

hours = (epoch % seconds_in_a_day) // seconds_in_an_hour + 8
minutes = (epoch % seconds_in_a_day) % seconds_in_an_hour // seconds_in_a_minute
seconds = (epoch % seconds_in_a_day) % seconds_in_an_hour % seconds_in_a_minute

我的问题是,为什么从epoch开始的一天中除以秒的余数除以一小时中的秒,然后将结果加上8。我对分钟和秒变量也有类似的混淆。我试图理解这种计算背后的逻辑,但它相当混乱。

因为历元总共是秒,所以我们只想观察今天经过的秒数。这给出了每个公式的第一部分,epoch%seconds

现在我们有一个已经过去的秒数,我们可以用它除以一小时内的秒数得到小时数。因为北京的时区是UTC+8,所以这里将8添加到结果中

因为我们在一天中也有几秒钟,所以我们在几小时和几秒钟内重复使用了几天的逻辑。如果我们知道从今天开始已经过去了n秒,我们可以将这段时间除以一个小时内的秒数,得到最后一个非完整小时内已经过去的秒数。现在我们把它除以一分钟内的秒,把秒变成分钟


同样的逻辑也适用于秒。

因为历元总共是秒,所以我们只想观察今天经过的秒数。这给出了每个公式的第一部分,epoch%seconds

现在我们有一个已经过去的秒数,我们可以用它除以一小时内的秒数得到小时数。因为北京的时区是UTC+8,所以这里将8添加到结果中

因为我们在一天中也有几秒钟,所以我们在几小时和几秒钟内重复使用了几天的逻辑。如果我们知道从今天开始已经过去了n秒,我们可以将这段时间除以一个小时内的秒数,得到最后一个非完整小时内已经过去的秒数。现在我们把它除以一分钟内的秒,把秒变成分钟


同样的逻辑也适用于秒。

我也一直在努力学习一些python编码,今天我遇到了这个问题。这是我的尝试

total_secs  = time.time()
seconds = total_secs % 60
minutes = (total_secs // 60) % 60
hours = (total_secs // 3600) % 24
days = total_secs // (3600 * 24)
这背后的逻辑是,秒是总秒数的剩余部分除以一分钟内的秒数,分钟是总分钟数的剩余部分除以一小时内的分钟数,通过这种逻辑,我们可以以相同的方式得到小时和天数


代码更易于阅读和理解,希望它能为阅读本文的未来python初学者消除一些困惑。

我也一直在努力学习一些python编码,今天我遇到了这个问题。这是我的尝试

total_secs  = time.time()
seconds = total_secs % 60
minutes = (total_secs // 60) % 60
hours = (total_secs // 3600) % 24
days = total_secs // (3600 * 24)
这背后的逻辑是,秒是总秒数的剩余部分除以一分钟内的秒数,分钟是总分钟数的剩余部分除以一小时内的分钟数,通过这种逻辑,我们可以以相同的方式得到小时和天数


代码更易于阅读和理解,希望它能为阅读本文的未来python初学者消除一些困惑。

Nice!这解释了很多,澄清了很多疑问。很好!这解释了很多,澄清了很多疑问。