我刚开始自学Python,而且我正在尝试编写一个计算慢跑结束时间的代码。
到目前为止,我的代码如下所示:
def elapsed(t):
t = raw_input('Enter time (hh:mm:ss): ')
th, tm, ts = t.split(':')
return int(ts) + int(tm) * 60 + int(th) * 3600
def mile(m):
m = raw_input('How many miles? ')
return int(m)
start = elapsed('start')
warmup = elapsed('warmup')
wmile = mile('wmile')
tempo = elapsed('tempo')
tmile = mile('tmile')
cooloff = elapsed('cooloff')
cmile = mile('cmile')
hour = (start + warmup * wmile + tempo * tmile + cooloff * cmile) // 3600
minute = (start + warmup * wmile + tempo * tmile + cooloff * cmile - hour * 3600) // 60
second = (start + warmup * wmile + tempo * tmile + cooloff * cmile - hour * 3600) % 60
print('Your run ended at %02d:%02d:%02d' % (hour, minute, second))
在此代码中,时间提示完全相同:"输入时间(hh:mm:ss):"我希望每个提示引用其变量名称,例如"输入开始时间(hh:mm:ss)"或"输入时间(hh:mm:ss):(预热)"。有没有办法做到这一点?
注意:虽然这在技术上可能是重复的,但我已经检查过类似的问题,但我认为问题和提供的答案都是在非特定方面,因此无论如何都决定提出我的问题。
答案 0 :(得分:1)
是的,请使用功能elapsed(t)
的输入
现在它被raw_input()
def elapsed(t):
t1 = raw_input('Enter time (hh:mm:ss): ({0})'.format(t))
th, tm, ts = t1.split(':')
return int(ts) + int(tm) * 60 + int(th) * 3600
或
def elapsed(t):
t1 = raw_input('Enter time (hh:mm:ss): (%s)' % t))
th, tm, ts = t1.split(':')
return int(ts) + int(tm) * 60 + int(th) * 3600
答案 1 :(得分:0)
def enter_time(specify_string):
print("Please enter the", specify_string, 'time in format hh:mm:ss > ', end='')
hh, mm, ss = input().split(':')
return (hh, mm, ss)
start_time = enter_time('start')
finish_time = enter_time('finish')
>>>Please enter the start time in format hh:mm:ss >13:32:34
>>>Please enter the finish time in format hh:mm:ss >12:21:21
>>>start_time
(13, 32, 34)
现在你可以在函数调用中使用字符串参数调用函数,并且它会根据不同的需求推广函数。
最好以更易读的格式(如元组)在函数之间移动时间。您可以制作更多功能,例如: - 输入测试有效时间 - 将元组转换为秒进行计算 - 将秒转换回元组格式 等。
如果我误解了你,请告诉我。