Python 给定以分钟为单位的时间,以小时和分钟为单位打印

Python 给定以分钟为单位的时间,以小时和分钟为单位打印,python,Python,问题是,给定的时间以分钟为单位,需要转换为小时和分钟 样本: 投入-53 产出-0 53 num = int(input()) if num < 60: print('0'+" "+str(num)) else: if num>=60: time = num*(1/60) time1 = (format(time, '.2f')) print(str(time1).replace('.',' ')) 最简单的方法是使用

问题是,给定的时间以分钟为单位,需要转换为小时和分钟

样本:

投入-53 产出-0 53

num = int(input())
if num < 60:
    print('0'+" "+str(num))
else:
    if num>=60:
        time = num*(1/60)
        time1 = (format(time, '.2f'))
        print(str(time1).replace('.',' '))

最简单的方法是使用整数除法//和模%:

//将返回除法的整数部分,%返回其余部分。输入130时,上述代码将打印2 10,输入5时,打印0 5

[编辑:]这适用于任何非负整数。如果还希望支持负整数,请在打印前添加以下条件:

if(timeInMinutes < 0):
    hours = hours + 1
    minutes = 60 - minutes
这使我们能够处理像-65到打印-15这样的输入


对于浮点数,事情可能会变得有点难看,因为%不是100%的准确率,例如60.1的结果是1.0 0.100000000000142。正如@CristiFati在对问题的评论中提到的那样,当使用divmod时,甚至会发生这种情况,因此没有真正的解决方法,我们需要更高级的处理或自定义的模方法,但这是离题的。

如图所示

你可以试试这个

def HoursandMinutes(Minutes):
    Minutes = Minutes % (24*3600)
    Hour = Minutes // 60
    Minutes %= 60
    print("%d %d" % (Hour, Minutes))
当你调用这个函数时

输出

HoursandMinutes(52)
0 52

HoursandMinutes(70)
1 10

HoursandMinutes(90)
1 30 

HoursandMinutes(105)
1 45

你有问题吗?小时,分钟=divmodnum,60。你可能想问个问题。现在你的帖子没有包含任何内容。请注意清楚地陈述你的问题,并包括对未来问题的研究。否则他们会得到不好的分数。这个问题本可以用谷歌和一些巧妙的方法很容易地解决。谢谢你的建议,我下次会照着做。可能是因为它的简洁。我编辑了一个解释和一个示例,但关于这个问题,真的没有什么其他要说的。@hajef解决方案应该返回0 5作为输出,而5单独作为输入。我仔细检查了它。如果将第4行的字符串更改为{}{},则会得到以下结果:5->05,60->10,65->15。如果您不了解这段代码的工作原理,请使用Google python整数除法和python模运算符,如果您不了解方法iitself,请剪切python。这再简单不过了。整数输入也是一样。为什么你认为超过60天的时间会产生意想不到的行为?如果您想每天减少,请在第2行使用分钟=分钟%24*60,但我认为这不是问题的意图。1500分钟是25小时零分钟,而不是1小时零分钟。正如我所说的分钟=分钟%24*3600在60天内产生这个hickup,因为我们输入的是分钟,而不是秒。尝试86400或任何更大的输入,亲自查看。
HoursandMinutes(52)
0 52

HoursandMinutes(70)
1 10

HoursandMinutes(90)
1 30 

HoursandMinutes(105)
1 45