哈哈哈ha1 发表于 2021-10-22 00:36:26

大佬们求帮助

import time as t

class My:
    def __str__(self):
      return self.prompt
    __repr__ = __str__
    def __init__(self):
      self.unit = ['年','月','日','小时','分钟','秒']
      self.prompt = '未开始计时'
      self.lasted = []
      self.begin = 0
      self.end = 0

    #开始计时
    def start(self):
      self.start = t.localtime()
      print('计时开始!')
   
    #结束计时
    def stop(self):
      self.stop = t.localtime()
      self._calc()
      print('计时结束!')

    #内部方法,计算时间
    def _calc(self):
      self.lasted = []
      self.prompt = '总共运行了'
      for index in range(6):
            if self.stop >= self.start:
                return self.lasted.append(self.stop - self.start)
            else:
                return slef.lasted.append(self.start - self.stop)
      self.prompt += str(self.lasted) + str(self.unit)
      print(self.prompt)

我向创建一个计时器,然后在小甲鱼的代码的基础上进行改动,要求如果开始的时候为2021年,结束的时候为2025年,两个相减不会出现负数,不知道这个代码问题出在了哪里,运行起来是这样的

>>> a = My()
>>> a.start()
计时开始!
>>> a.stop()
计时结束!
>>> a
总共运行了

wp231957 发表于 2021-10-22 07:09:48

2025在哪里,也没看到啊

傻眼貓咪 发表于 2021-10-22 10:18:53

本帖最后由 傻眼貓咪 于 2021-10-22 10:20 编辑

第一、如果想创建计时器,就用 time.time() 便可
第二、你的代码不够严谨,你是想以年月日时分秒计算开始和结束所过去的时间,试问如果开始时间为 2分钟12秒,结束时间为3分钟01秒,那么如何相减?(1-12变负数)
第三、你的代码没有考虑闰年、平年啊
第四、你的代码最终结果为年月日时分秒,请问多少天为 1 个月呢?是 30天 还是 31天?(没有人会这样算的,一般只有年日)

哈哈哈ha1 发表于 2021-10-22 14:41:10

傻眼貓咪 发表于 2021-10-22 10:18
第一、如果想创建计时器,就用 time.time() 便可
第二、你的代码不够严谨,你是想以年月日时分秒计算开始 ...

大佬有没有参考的代码

哈哈哈ha1 发表于 2021-10-22 14:42:14

wp231957 发表于 2021-10-22 07:09
2025在哪里,也没看到啊

就是加入结束的时间为3分01秒,开始时间为2分12秒,那么我用结束减开始不久变为负数了么,所以我现在就是想不论他们的大小怎么样相减之后都为正数

哈哈哈ha1 发表于 2021-10-22 14:45:17

傻眼貓咪 发表于 2021-10-22 10:18
第一、如果想创建计时器,就用 time.time() 便可
第二、你的代码不够严谨,你是想以年月日时分秒计算开始 ...

我就是想解决第二个问题,我是用if条件语句去完成你提出来的第二个问题,不知道问题出在哪里,最后字符串没有进行拼接

傻眼貓咪 发表于 2021-10-22 15:06:33

import time

start = time.time()
time.sleep(2)
end = time.time()

print(f"一共过了 {int(end-start)} 秒")一共过了 2 秒
页: [1]
查看完整版本: 大佬们求帮助