1

我正在创建一个函数,它接收十分之一秒 (t) 并返回一个处理过的字符串(类似数字时钟)。

有没有更好/更容易/最佳的方法来做到这一点?

输出格式:A: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)
4

2 回答 2

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))
于 2012-12-10T18:23:38.777 回答
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'
于 2012-12-10T18:24:07.153 回答