【问题标题】:Is there an easier way of doing this? [duplicate]有没有更简单的方法来做到这一点? [复制]
【发布时间】:2017-05-13 23:03:11
【问题描述】:

所以我写了一个python代码,将秒转换为小时分钟和秒,但是代码看起来并不整洁。做我的脚本正在做的事情有什么更好的方法?

from fractions import Fraction as Frac
from decimal import Decimal as Deci

def Hrs(mins,hr=[],deci=[],hrs=True):
  return(Seperator(mins/60))

def Seperator(Decimal,num=[],deci=[],nums=True):
  del num[:],deci[:]
  for item in str(Decimal):
   if item == '.':
    deci.append(item)
    nums = False
    continue
   num.append(item)if nums else deci.append(item)
  return''.join(num),''.join(deci)

def Mins(secs):
  t = Deci(float(Frac(secs,60)))
  return t

def Secs(deci):
  r = Deci(float(deci*60))
  return r

def Clean(decimal,deci=[],p=True):
  del deci[:] 
  for item in str(decimal):
   if item == '.':
    if p:deci.append(item);p=False;continue
    else: break
   deci.append(item)
  return float(''.join(deci))

if __name__ == '__main__':
  Seconds = 6033
  Hours   = Hrs(Mins(Seconds))[0]
  Minutes = int(Secs(Clean(Hrs(Mins(Seconds))[1])))
  Seconds = int(eval(Seperator(Secs(Clean(Hrs(Mins(Seconds))[1])))[1])*60)
  print '{}:{}:{}'.format(Hours,Minutes,Seconds)

【问题讨论】:

    标签: python time


    【解决方案1】:

    当然。给你:

    def convert(total):
        secs = total%60
        total /= 60
        minutes = total%60
        total /= 60
        hours = total%24
        days = total/24
        return (days, hours, minutes, secs)
    
    convert(13246345)
    

    输出:(153, 7, 32, 25)

    【讨论】:

      【解决方案2】:

      这应该可以解决问题

      import time
      
      localtime   = time.localtime()
      timeString  = time.strftime("%Y%m%d%H%M%S", localtime)
      
      timeString  = time.strftime("%H:%M:%S")
      print timeString
      

      【讨论】:

        猜你喜欢
        • 2011-06-28
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-13
        • 2017-02-17
        相关资源
        最近更新 更多