| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 denghaifu 于 2022-6-2 13:51 编辑  
 
各位大神,帮忙想想是什么问题,我把44课的代码原封输入到‘jupyter notebook’ 中,运行程序时,不显示‘总共运行了多少秒’这句话,后来我又输入到‘idle’中,也不显示这句话,是什么原因?,谢谢 
 
import time as t 
 
class MyTimer(): 
    def __init__(self): 
        self.unit = ['年', '月', '天', '小时', '分钟', '秒'] 
        self.prompt = '未开始计时' 
        self.lasted = [] 
        self.begin = 0 
        self.end = 0 
     
    def __str__(self): 
        return self.prompt 
     
    __repr__ = __str__ 
     
    def __add__(self, other): 
        prompt = '总共运行了' 
        result = [] 
        for index in range(6): 
            result.append(self.lasted[index] + other.lasted[index]) 
            if result[index]: 
                prompt += (str(result[index]) + self.unit[index]) 
        return prompt 
             
          
             
    def start(self): 
        self.begin = t.localtime() 
        self.prompt = '提示:请先调用stop(),停止计时!' 
        print('开始计时.....') 
     
    def stop(self): 
        if not self.begin: 
            print('提示:请先调用 start() 进行计时!') 
        else: 
            self.end = t.localtime() 
            self._calc() 
            print('计时结束!') 
         
    def _calc(self): 
        self.lasted = [] 
        self.prompt = '总共运行了' 
        for index in range(6): 
            self.lasted.append(self.end[index] - self.begin[index]) 
            if self.lasted[index]: 
                self.prompt += (str(self.lasted[index]) + self.unit[index]) 
 
 
补充了一下代码,谢谢
类如果要使用的话需要实例化为对象 
- import time as t
 
  
- class MyTimer():
 
 -     def __init__(self):
 
 -         self.unit = ['年', '月', '天', '小时', '分钟', '秒']
 
 -         self.prompt = '未开始计时'
 
 -         self.lasted = []
 
 -         self.begin = 0
 
 -         self.end = 0
 
 -    
 
 -     def __str__(self):
 
 -         return self.prompt
 
 -    
 
 -     __repr__ = __str__
 
 -    
 
 -     def __add__(self, other):
 
 -         prompt = '总共运行了'
 
 -         result = []
 
 -         for index in range(6):
 
 -             result.append(self.lasted[index] + other.lasted[index])
 
 -             if result[index]:
 
 -                 prompt += (str(result[index]) + self.unit[index])
 
 -         return prompt
 
 -             
 
 -          
 
 -             
 
 -     def start(self):
 
 -         self.begin = t.localtime()
 
 -         self.prompt = '提示:请先调用stop(),停止计时!'
 
 -         print('开始计时.....')
 
 -    
 
 -     def stop(self):
 
 -         if not self.begin:
 
 -             print('提示:请先调用 start() 进行计时!')
 
 -         else:
 
 -             self.end = t.localtime()
 
 -             self._calc()
 
 -             print('计时结束!')
 
 -         
 
 -     def _calc(self):
 
 -         self.lasted = []
 
 -         self.prompt = '总共运行了'
 
 -         for index in range(6):
 
 -             self.lasted.append(self.end[index] - self.begin[index])
 
 -             if self.lasted[index]:
 
 -                 self.prompt += (str(self.lasted[index]) + self.unit[index])
 
  
- # 实例化MyTimer这个类
 
 - time = MyTimer()
 
 - time.start()
 
 - t.sleep(5)  # 这个地方要等待一下,不然不会输出"总共运行了多少秒"
 
 - time.stop()
 
  复制代码 
 
 
 |   
 
 
 
 |