蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)

蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)_第1张图片

 a.分析问题

看到题目与时间有关,查询python中与时间有关的函数(善用搜索哦)

time()函数

先自己试用一下

蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)_第2张图片

 输出的结果就是当前时间的时间戳,也就是从1970纪元开始的浮点秒数。这个概念和题目中所给的概念是一样的。

但是题目中要求输入一个数字推算出时间,其中1s=1000ms。小白的解体思路是,既然没有要求算年月日也就不用想有关闰年的问题,因为时间就是一秒一秒地走的,直接将给出的数字进行时间转换即可。

b.时间的转换

因为1s=1000ms,首先将数字÷1000,得到从1970年时间走过的秒数。代码:

time=int(input())

time=time//1000

两个斜杠的用法:

python中两个斜杠//与一个斜杠/的区别_m0_37805091的博客-CSDN博客

蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)_第3张图片

 此处不知道该不该用双斜杠,打算把两种都写着试一下。

通过这一步将时间变成秒数,如果是46800999,此时就代表了46800.99秒。

time=time//1000

接下来的关键是将所给的秒数分别计算出秒数、分数和小时数。三者不可颠倒顺序因为是一步步推来的。现有秒才有分钟,再有小时。

将秒数对60取余,商为分钟数,余数为秒数

second=time%60

用所给时间减去当前秒数,除以60得到分钟数,分钟数对60取余数得到分钟数。

min=(time-second)/60%60

最后一步是算当前小时数。

用所给时间减去秒数除以60得到分钟数,用这个分钟数减去上一步的分钟数,最后对24取余数得到小时数。

参考代码:

time = time // 1000
s = time % 60 
m = (time - s) / 60 % 60 
h = ((time - s) / 60 // 60 - min) % 24 

此时输出结果如下:

蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)_第4张图片c.转换成题目要求的格式

 得到的数字如果小于10,就要在前面加上数字0,可以自己定义一下函数的输出。

参考代码:

def result(n):
    if n<10:
        n='0'+str(n)
    return n

参考代码:

 

time=int(input())

def result(n):
    if n<10:
        n='0'+str(n)
    return n

time = time // 1000 #舍去毫秒
s =result(time % 60)
m = result(int((time - s) / 60 % 60) )
h =result(int(((time - s) / 60 // 60 - min) % 24 ))


print(h,":",m,':',s)

蓝桥杯-零基础python刷题之路-历年真题-时间显示(包含各个知识点详细记录)_第5张图片

 

你可能感兴趣的:(小白的蓝桥杯刷题之路,蓝桥杯,python,职场和发展)