好好学不玩手机 发表于 2020-3-12 16:00:29

44讲视频里代码运行问题

代码如下:
import time as t
class tt:
    def __init__(self):
      self.unit=['年','月','天','小时','分','秒']
      self.prompt='未开始计时'
      self.last=[]
      self.begin=0
      self.end=0
    def __str__(self):
      return self.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.last=[]
      self.prompt='总共运行了'
      for index in range(6):
            self.last.append(self.end-self.begin)
            if self.last:
                self.prompt+=(str(self.last+self.unit))
t1=tt()
我用的是pycharm运行,但是我发现不能像shell里面运行的那样,先t1.begin(),过一会在t1.end()就出结果。
我先调用t1.begin(),然后它就停止运行了,再调用t1.end()就会触发代码中的错误'请先调用start()进行计时'
有大佬解释一下是怎么回事吗?

qiuyouzhi 发表于 2020-3-12 16:01:45

你在文件里写的,肯定一口气全执行完了啊

好好学不玩手机 发表于 2020-3-12 16:06:41

我的意思是如果分开先写t1.begin(),它输出‘计时开始’。然后我再写t1.end(),它就会触发代码中的错误。就是说不能像shell里面那样分段来运行。我不明白应该怎么调用才能输出结果,请大佬指教

zltzlt 发表于 2020-3-12 16:42:52

在 t1.start() 和 t1.stop() 中间加上两句:

import time
time.sleep(1)

就可以看到计时效果。

好好学不玩手机 发表于 2020-3-12 16:58:33

zltzlt 发表于 2020-3-12 16:42
在 t1.start() 和 t1.stop() 中间加上两句:




这样的话是人为的修改计时的时间,请问一下能不能像视频里讲的那样任意的输出计时的时间,谢谢!

zltzlt 发表于 2020-3-12 16:59:58

好好学不玩手机 发表于 2020-3-12 16:58
这样的话是人为的修改计时的时间,请问一下能不能像视频里讲的那样任意的输出计时的时间,谢谢!

只能在 IDLE Shell 中运行代码。先把你的代码用 IDLE 运行一遍(不要写 t1 = tt() 以及后面的语句),然后再在打开的 Shell 窗口中计时(t1.start() 、t1.stop())

一个账号 发表于 2020-3-12 17:17:31

好好学不玩手机 发表于 2020-3-12 16:58
这样的话是人为的修改计时的时间,请问一下能不能像视频里讲的那样任意的输出计时的时间,谢谢!

那就在 idle 里面执行
页: [1]
查看完整版本: 44讲视频里代码运行问题