2017-01-17 13 views
1

我得到用户输入的输入是秒。大多数情况下,我可以将我的输入转换为hh:mm:ss格式,但当数字变大时,我似乎遇到了一些问题。例如,当我输入900时,我得到的结果是01:15:-100。我特别不希望否定,并且每个数字只需要两个摘要(无小数)。不知道我的数学是否出错。把秒转换成hh:mm:ss在Python中有大量数字的问题

if sys.argv[1] == "raceTime": 
n = int(sys.argv[2]) 
if n < 60: 
    s = format(number, '0>2.0f') 
    print("{}:{}:{}".format(00, 00, s)) 
else: 
    n = int (sys.argv[2])/60 
    m =n//1 
    h = min//10 
    s = (n - h - m)*100 
    second = format(s,'0>2.0f') 
    minute = format(m, '0>2.0f') 
    hour = format(h, '0>2.0f') 
    print("{}:{}:{}".format(hour, minute, second)) 
+0

乘以0.25 * 100得到25. INT(1.0),以获得1 –

+0

请参见http:// pyformat。信息 –

+0

好吧,这工作非常感谢!我唯一的问题是,现在当我输入更大的数字时,例如900,我会得到奇怪的结果。例如:01:15:-100。我该如何解决这个问题? – user3093377

回答

2

使用适当string formatting

second = format(sec, '02.0f') # etc. 

或只是

print("{:02.0f}:{:02.0f}:{:02.0f}".format(hour, min, sec)) 
# f -> float, 02 -> 2 places before (0-padded), .0 -> 0 places after point