【问题标题】:Python Time Elapsed Not Displaying AccuratelyPython 时间已过不准确显示
【发布时间】:2021-06-20 15:57:44
【问题描述】:

我正在尝试创建一个 Tkinter GUI,它记录按钮之间按下的时间,然后将元组输出附加到列表中,但是它将时间差记录为 1625044470.590308。我不知道这个数字是什么意思,所以如果有人理解这个奇怪的错误帮助,将不胜感激。 我的代码:

import time
from tkinter import *

initial = 0
top = Tk()
command_time_list = []
master_list = []
print(command_time_list)
#start forward
def start_time_forward():
   global initial
   print("Timer Start")
   initial = time.time()
   return initial

def stop_time_forward():
   final = time.time()
   time_elapsed = final - initial
   command_time_list.append('a')
   command_time_list.append(time_elapsed)
   command_time_tuple = tuple(command_time_list)
   return command_time_tuple

command_time_tuple = stop_time_forward()
def append():
    master_list.append(command_time_tuple)
    print(master_list)

forward_start = Button(top, text ="Forward Time Start", command = start_time_forward)
forward_end = Button(top, text ="Forward Time Stop", command = stop_time_forward)
append = Button(top, text="append path pair", command=append)

【问题讨论】:

    标签: python python-3.x list tkinter tkinter-entry


    【解决方案1】:

    Pythom 时间方法以浮点数形式返回时间,以自纪元以​​来的秒数表示,以 UTC 为单位。你的错误是忘记了全局,而且初始值不能为 0,如果是这样,那么你将从纪元开始获得时间 您将在第 27 行拥有

    command_time_tuple = stop_time_forward() 
    

    time_elapsed = 最终 - 0 其中 final 是 time.time() 以秒为单位返回自纪元以来的时间

    command_time_tuple = stop_time_forward() # t0 时的值

    import time
    from tkinter import *
    
    initial = time.time() #0
    top = Tk()
    command_time_list = []
    master_list = []
    print(command_time_list)
    #start forward
    def start_time_forward():
       global initial #like you used global here to be able to change global value
       print("Timer Start")
       initial = time.time()
       return initial
    
    def stop_time_forward():
       final = time.time()
       time_elapsed = final - initial
       command_time_list.append('a')
       command_time_list.append(time_elapsed)
       ##!!!!! you must use global here too because  command_time_tuple is global variable !!!!!!!!!
       global command_time_tuple
       
       command_time_tuple = tuple(command_time_list) # value at t_new
       return command_time_tuple
    
    command_time_tuple = stop_time_forward() # value at t0
    def append():
        #now each time this function will be run it will append master_list with the new at t_new not with t0
        master_list.append(command_time_tuple)
        print(master_list)
    
    forward_start = Button(top, text ="Forward Time Start", command = start_time_forward)
    forward_end = Button(top, text ="Forward Time Stop", command = stop_time_forward)
    append = Button(top, text="append path pair", command=append)
    append.pack()
    forward_end.pack()
    forward_start.pack()
    

    【讨论】:

      【解决方案2】:

      我相信这就是您想要实现的目标:

      import time
      from tkinter import *
      
      initial = 0
      master_list = []
      command_time_list: tuple = tuple()
      top = Tk()
      top.geometry("600x300")
      
      def start_time_forward():
          global initial
          initial = time.time()
          print("updated")
      
      def stop_time_forward():
          global command_time_list
          time_elapsed = time.time() - initial
          command_time_list = ('a', time_elapsed)
      
      
      def append():
          global command_time_list
          # Added an if statement to make sure that the user hits the stop button
          if command_time_list:
              master_list.append(command_time_list)
          print(master_list)
          command_time_list = tuple()
      
      forward_start = Button(top, text="Forward Time Start", command=start_time_forward)
      forward_end = Button(top, text="Forward Time Stop", command=stop_time_forward)
      append = Button(top, text="append path pair", command=append)
      forward_start.pack()
      forward_end.pack()
      append.pack()
      top.mainloop()
      

      【讨论】:

        猜你喜欢
        • 2021-03-15
        • 2016-04-08
        • 1970-01-01
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多