Think Python Exercise 16.1

写一个叫做 mul_time 的函数,接收一个 Time 对象和一个数,并返回一个新的 Time 对象,包含原始时间和数的乘积。

然后使用 mul_time 编写一个函数,接受一个表示比赛完赛时间的 Time 对象以及一个表示距离的数字,并返回一个用于表示平均配速 (每英里所需时间) 的 Time 对象。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Time:
    """用于记录时间
    属性:hour, minute, second
    """

def print_time(ti):
    print("%.2d:%.2d:%.2d" % (ti.hour,ti.minute,ti.second)) #记得加括号
    
def time_to_int(time):
    minutes = time.hour * 60 + time.minute
    seconds = minutes * 60 + time.second
    return seconds

def int_to_time(seconds):
    time = Time()
    minutes, time.second = divmod(seconds, 60)
    time.hour, time.minute = divmod(minutes, 60)
    return time

def mul_time(t1, a):
    return int_to_time(time_to_int(t1) * a)

distance = 10 #距离,英里

time1 = Time()
time1.hour = 11
time1.minute = 59
time1.second = 30

speed = mul_time(time1, 1/distance) #单位:小时/英里
print_time(speed)