作为练习,重写此函数,使其不包含任何循环?

时间:2017-10-31 00:03:05

标签: python python-2.7

我是python的初学者,正在阅读一本书,我真的无法通过本练习得到答案,它使用修饰函数在对象属性中添加时间。

def increment(time,seconds):
    time.seconds = time.seconds + seconds
    while time.seconds >= 60:
        time.seconds = time.seconds - 60
        time.minutes = time.minutes + 1
    while time.minutes >= 60:
        time.minutes = time.minutes - 60
        time.hours = time.hours + 1

1 个答案:

答案 0 :(得分:0)

在本练习中,您将秒数保持在有效范围内(0..59),然后保持相同的分钟数,例如:

1:29:15 + 10秒 - > 1:29:25 - > 1点29分25秒

1:59:40 + 30秒 - > 1:59:70 - > 1:60:10 - > 2时00分10秒

您可以使用地板分区(//)和模数(%)重写练习:

def increment(time,seconds):
    time.seconds = time.seconds + seconds

    time.minutes = time.minutes + (time.seconds//60)
    time.seconds = time.seconds%60
    time.hours = time.hours + (time.minutes//60)
    time.minutes = time.minutes%60