如何显示函数完成后的时间

2024-04-25 01:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码从列表中选择一个单词并将其显示在标签上。我还有一个标签,它显示用户按enter键后更新的时间。你知道吗

import tkinter
import time
import random

score = 0
words = ["Games","Development","Keyboard","Speed","Typer","Anything","Alpha","Zealous","Accurate","Basics","Shortcut","Purpose","Window","Counter","Fortress","Modification","Computer","Science","History","Football","Basketball","Solid","Phantom","Battlefield","Advanced","Warfare","Download","Upload","Antidisestablishmentarianism","Supercalifragilisticexpialidocious","Discombobulation","Liberated","Assassin","Brotherhood","Revelation","Unity","Syndicate","Victory"]
wordcount = 0

start_time = time.time()

def shuffle():
    global word, score, start_time
    now = time.time()
    score = float(start_time - now)
    score = round(score,2)
    while wordcount < 12:
        entry.delete(0, tkinter.END)
        word = random.choice(words)
        label.config(text=str(word))
        scoreLabel.config(text="Time: " + str(score) + "s")      
        return

def check(event):
    global score, wordcount, word, start_time
    now = time.time()
    score = float(start_time - now)
    score = round(score,2)
    if entry.get().lower() == word.lower():
        scoreLabel.config(text="Time: " + str(score) + "s")
        wordcount += 1
        wordcounter.config(text="Words: " + str(wordcount))
        words.remove(word) 
        shuffle()

    elif entry.get().lower() != word.lower():
        scoreLabel.config(text="Time: " + str(score) + "s")
        shuffle()                                

root = tkinter.Tk()          
label = tkinter.Label(root, font=('Helvetica', 32))
label.pack()
scoreLabel = tkinter.Label(root, text="Time: " + str(score) + "s", font=('Helvetica', 14))
scoreLabel.pack()
wordcounter = tkinter.Label(root, text="Words: " + str(wordcount), font =("Helvetica", 14))
wordcounter.pack()                                   
go = tkinter.Button(root, text="GO!", command=shuffle)
go.pack()
entry = tkinter.Entry(root)
root.bind("<Return>", check)
entry.pack()
entry.focus_set()
root.mainloop()

我的问题是,每当他们按回车键,时间显示为负值,这是错误的。我也试过(后两个没有什么不同):

score = float(now - start_time)
score = float(start_time + now)
score = float(now + start_time)

但是仍然产生错误的输出(负值)。你知道吗


Tags: textconfigtimetkinterrootfloatstartwordcount