鱼C论坛

 找回密码
 立即注册
查看: 1593|回复: 6

[已解决]大佬们求帮助

[复制链接]
发表于 2021-10-22 00:36:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[index] >= self.start[index]:
                return self.lasted.append(self.stop[index] - self.start[index])
            else:
                return slef.lasted.append(self.start[index] - self.stop[index])
        self.prompt += str(self.lasted[index]) + str(self.unit[index])
        print(self.prompt)

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

>>> a = My()
>>> a.start()
计时开始!
>>> a.stop()
计时结束!
>>> a
总共运行了
最佳答案
2021-10-22 15:06:33
  1. import time

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

  5. print(f"一共过了 {int(end-start)} 秒")
复制代码
  1. 一共过了 2 秒
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-22 07:09:48 From FishC Mobile | 显示全部楼层
2025在哪里,也没看到啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-22 10:18:53 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-22 10:20 编辑

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

使用道具 举报

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

大佬有没有参考的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-22 14:42:14 | 显示全部楼层
wp231957 发表于 2021-10-22 07:09
2025在哪里,也没看到啊

就是加入结束的时间为3分01秒,开始时间为2分12秒,那么我用结束减开始不久变为负数了么,所以我现在就是想不论他们的大小怎么样相减之后都为正数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我就是想解决第二个问题,我是用if条件语句去完成你提出来的第二个问题,不知道问题出在哪里,最后字符串没有进行拼接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-22 15:06:33 | 显示全部楼层    本楼为最佳答案   
  1. import time

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

  5. print(f"一共过了 {int(end-start)} 秒")
复制代码
  1. 一共过了 2 秒
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 23:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表