当我试图运行这段代码时,一个ValueError
出现,暗指函数numRandom
。我认为Python可以将int的字符串表示形式传递给int
import tkinter
import random
window = tkinter.Tk()
window.geometry('600x500')
x = random.randint(1,300)
remainingTime = True
Attempts = 4
def numRamdom():
global Attempts
while Attempts > 0:
numWritten = int(entryWriteNumber.get())
if numWritten > x:
lblClue.configure(text = 'Its a bigger number')
Attempts = Attempts -1
if numWritten < x:
lblClue.configure(text = 'Its a smaller number')
Attempts = Attempts -1
if numWritten == x:
lblClue.configure(text = 'Congratulations ;)')
remainingTime = False
return remainingTime, countdown(0)
if Attempts == 0:
remainingTime = False
return remainingTime, countdown(0), Attempts, gameOver()
entryWriteNumber = tkinter.Entry(window)
entryWriteNumber.grid(column = 0, row = 1, padx = 10, pady = 10)
numRamdom()
window.mainloop()
问题是,当代码运行时,它直接调用
numRamdom()
,也就是说,最初条目小部件是空的,它们与这些空条目小部件一起运行,因此出现错误。因此,只需指定一个按钮和一个命令,如:确保在
def numRamdom():
之后的mainloop()
之前说这句话。该按钮仅在单击按钮时运行该功能或者,如果您想减少按钮,请尝试:
方法1:
但是请记住,如果用户没有在5秒内正确输入,则会弹出一些错误
方法2:
这样,如果您在输入小部件中按enter键(输入数据后),它将运行该功能
希望这有帮助,如果有任何错误,一定要让我知道
干杯
下面是一个基于您的代码的完全有效的示例。您的问题是试图在条目中有任何内容之前转换条目的内容。要解决此问题,可以添加一个按钮,该按钮调用命令
numRamdom()
如果传递的值不能转换为整数,您仍然会得到一个错误,但这很容易用
if
语句修复相关问题 更多 >
编程相关推荐