checkily 发表于 2018-2-28 00:00:07

python 44课,修改了计时器

import time

class Mytimer:
    def __init__(self):
      self.begin,self.end=0,0
      self.result=[]
      self.unit=['年','月','日','时','分','秒']
      self.total=
      self.prompt='请输入start()开始计时'

    def __str__(self):
      return self.prompt

    __repr__=__str__

    def __add__(self,other):
      prompt='总时间是'
      for i in range(6):
            self.result=self.result+other.result
            if self.result>self.total:
                self.result-=self.total
                self.result+=1
               
      for i in range(6):#因为进位是后进的,所以如果进位前是0的话,并不会打印这一位,所以要再循环一次
            if self.result:
                prompt+=str(self.result)+self.unit
      print(prompt)
                  
    def start(self):
      print('计时开始...')
      self.begin=time.localtime()
      self.prompt='请输入stop()结束计时'

    def stop(self):
      if not self.begin:
            print('请输入start()开始计时')
      else:
            print('计时结束...')
            self.end=time.localtime()
            self.__calc()

    def __calc(self):
      self.prompt='共运行了'
      self.result=[]#重置列表
      for i in range(6):
            self.result.append(self.end-self.begin)

      for i in range(6):    #如果result出现负数,则向前借一位
            if self.result[-1-i]<0:
                self.result[-1-i-1]-=1
                self.result[-1-i]+=self.total[-1-i]
            if self.result:
                self.prompt+=str(self.result)+self.unit

      self.begin,self.end=0,0
      
t1=Mytimer()
t2=Mytimer()

忽略月份大小的问题
页: [1]
查看完整版本: python 44课,修改了计时器