2012-12-10 52 views
1

我创建了一个函数,它接收秒(t)的十分之一秒并返回一个已处理的字符串(数字时钟)。格式化数字时钟的时间

是否有更好/更简单/最佳的方式来做到这一点?

输出格式:答:BC.D(分钟:十分之几秒。)

def format(t): 
    A = 0 
    B = 0 
    C = 0 
    D = t 

    if t >= 10: 
     C = t // 10 
     D = t % 10 

     if C >= 10: 
      B = C // 10 
      C = C % 10 

      if B >= 6: 
       A = B // 6 
       B = B % 6 

    return str(A) + ":" + str(B) + str(C) + "." + str(D) 
+3

请使用有意义的变量名称 –

+0

您能否提供一些示例输入和输出? –

回答

3

所有这些ifs是完全不必要的,并且其他一些东西可以简化为:

def fmt(t): 
    tenths = t % 10 
    t //= 10 
    sec = t % 60 
    t //= 60 
    min = t 
    return '%d:%02d.%d' % (min, sec, tenths) 

print(fmt(1234)) 
+0

非常感谢。 –

1
def format(t): 
    seconds, fractions = divmod(t, 10) 
    minutes, seconds = divmod(seconds, 60) 
    return "%d:%02d.%d" % (minutes, seconds, fractions) 

示例输出:

>>> format(10) 
'0:01.0' 
>>> format(100) 
'0:10.0' 
>>> format(1000) 
'1:40.0' 
+0

非常感谢。 –

+0

不客气Zed –