qin_yin 发表于 2020-11-6 21:42:47

布尔问题

本帖最后由 qin_yin 于 2020-11-6 21:46 编辑

import time as t
'''time.localtime()
接收时间辍(1970 纪元年后经过的浮点秒数)并返回当地时间下的时间元组 t(t.tm_isdst 可取 0 或 1,取决于当地当时是不是夏令时)
'''
class timer:
    beg = 0
    end = 0
    #开始计时
    def start(self):
      self.beg = t.localtime()
      print('开始计时')
    #停止计时
    def stop(self):
      if not self.beg:
            print('提示:请先启动计时')
      else:
            self.end = t.localtime()
            self._count_time()

    #总计时间
    def _count_time(self):
      total_s = ''
      for i in range(6):
            temp = str(self.end - self.beg)
            print(bool(temp))
            if temp:
                total_s += temp
      print(total_s)
      self.beg = 0
      self.end = 0

a = timer()
a.start()
t.sleep(3)
a.stop()

以上模块并未完善,在中途发现了个问题
temp = str(self.end - self.beg),当这里的结果为0,0不是相当于False,为什么这里0属于True

昨非 发表于 2020-11-6 21:46:01

qin_yin 发表于 2020-11-6 21:47:06

昨非 发表于 2020-11-6 21:46


刚才没编辑好

qin_yin 发表于 2020-11-6 21:51:16

而且这里 if temp:
                total_s += temp
写成:if temp != 0:当temp为0的时候依然可以进入这个条件,亲测

昨非 发表于 2020-11-6 22:19:10

qin_yin 发表于 2020-11-6 21:51
而且这里 if temp:
                total_s += temp
写成:if temp != 0:当temp为0的时候依然可以进入这 ...

    #总计时间
    def _count_time(self):
      total_s = ''
      for i in range(6):
            temp = str(self.end - self.beg)
            print(bool(temp))
            if temp:
                total_s += temp
      print(total_s)
      self.beg = 0
      self.end = 0

能解释下你这个for 0到5是什么用意吗

疾风怪盗 发表于 2020-11-6 22:30:32

虽然不是很明白你这代码要计算什么,猜你要总计循环6次的时间?import time as t
'''time.localtime()
接收时间辍(1970 纪元年后经过的浮点秒数)并返回当地时间下的时间元组 t(t.tm_isdst 可取 0 或 1,取决于当地当时是不是夏令时)
'''
class timer:
    beg = 0
    end = 0
    #开始计时
    def start(self):
      self.beg = t.time()
      print('开始',self.beg)
      print('开始计时')
    #停止计时
    def stop(self):
      if not self.beg:
            print('提示:请先启动计时')
      else:
            self.end = t.time()
            print('结束',self.end)
            self._count_time()

    #总计时间
    def _count_time(self):
      total_s = 0
      for i in range(6):
            temp = self.end - self.beg
            print('间隔',temp)
            print(bool(str(temp)))
            if temp:
                total_s += temp
      print('总计',total_s)
      self.beg = 0
      self.end = 0

a = timer()
a.start()
t.sleep(3)
a.stop()

然后你说的布尔问题
print(bool(str(0)))
print(bool(0))
结果是:
True
False

kogawananari 发表于 2020-11-6 22:34:07

      for i in range(6):
            temp = self.end - self.beg
            print(bool(temp))
            if temp:
                total_s += str(temp)

qin_yin 发表于 2020-11-6 22:50:15

昨非 发表于 2020-11-6 22:19
能解释下你这个for 0到5是什么用意吗

这是还没写完的代码,我是想for循环t.localtime()返回的元组,相减得到用时长,年月日
页: [1]
查看完整版本: 布尔问题