繁体   English   中英

如何在Python中使用%将秒转换为分钟和秒

[英]How do I use % to convert seconds to minutes AND seconds in Python

def main():
    import math
    print('Period of a pendulum')
    Earth_gravity = 9.8
    Mars_gravity = 3.7263
    Jupiter_gravity = 23.12
    print('     ')
    pen = float(input('How long is the pendulum (m)? '))
    if pen < 0:
        print('illegal length, length set to 1')
        pen = 1
        period1 = (2 * 3.14159265359) * math.sqrt(pen / Earth_gravity)
        period2 = (2 * 3.14159265359) * math.sqrt(pen / Mars_gravity)
        period3 = (2 * 3.14159265359) * math.sqrt(pen / Jupiter_gravity)        
        print('     ')
        print('The period is', round(period1,3))
        minutes1 = period1 / 60
        minutes2 = period1 / 60
        minutes3 = period1 / 60
        seconds1 = minutes1 % 60
        seconds2 = minutes2 % 60
        print('or', round(minutes1,1), 'minutes and', seconds, 'seconds on 
Earth')
        print('     ')
        print('The period is', round(period2,3))
        print('or', round(minutes2,1), 'minutes and', seconds, 'seconds on 
Mars')
        print('     ')
        print('The period is', round(period3,3))
        print('or', round(minutes3,1), 'minutes and', seconds, 'seconds on 
Jupiter')        
    else:
        period1 = (2 * 3.14159265359) * math.sqrt(pen / Earth_gravity)
        period2 = (2 * 3.14159265359) * math.sqrt(pen / Mars_gravity)
        period3 = (2 * 3.14159265359) * math.sqrt(pen / Jupiter_gravity)        
        print('     ')
        print('The period is', round(period1,3))
        minutes1 = period1 // 60
        minutes2 = period2 // 60
        minutes3 = period3 // 60
        seconds1 = minutes1 % 60
        seconds2 = minutes2 % 60
        seconds3 = minutes3 % 60
        print('or', round(minutes1,1), 'minutes and', seconds1, 'seconds on 
Earth')
        print('     ')
        print('The period is', round(period2,3))
        print('or', round(minutes2,1), 'minutes and', seconds2, 'seconds on 
Mars')
        print('     ')
        print('The period is', round(period3,3))
        print('or', round(minutes3,1), 'minutes and', seconds3, 'seconds on Jupiter')        

main()

好吧,我需要将秒转换为秒和分钟。 我不确定如何使用%来获取输出的秒和分钟。 我需要在此使用//和%。 我对此很陌生,因此对它草率或过大表示歉意。 混乱的区域是包含%的行。 谢谢!

您可以简单地使用divmod返回整数除数和模,非常适合您的情况:

>>> seconds = 1000
>>> minutes, seconds = divmod(seconds, 60)
>>> hours, minutes = divmod(minutes, 60)
>>> days, hours = divmod(hours, 24)
>>> days, hours, minutes, seconds
(0, 0, 16, 40)

似乎您只需要第一行minutes, seconds = divmod(seconds, 60)但我想展示一下如果还有更多的转化,该如何使用。 :)

整数将舍入到最接近的整数。 %或模运算符仅报告除法运算的其余部分。

因此135%60返回15。这是因为60两次进入135,但其余15小于60。60进入135的两次均未返回,因此您需要使用标准除法来找到该值运营商。

您可以除以60得到分钟,然后还可以使用取模运算符返回剩余的秒数。

time = 135

minutes = time / 60
seconds = time % 60

print minutes
print seconds

回报

2
15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM