我正在尝试从条目中获取一个整数

I am trying to get an int from entry

import tkinter as tk

import math
window = tk.Tk()
label = tk.Label(text = 'Want to find a root?')
label.pack()
entry = tk.Entry(fg = 'blue')
entry.pack()
n = entry.get()
number = int(n)
answers = {}
roots = [x for x in range(2, 100)]
def search(number):
    for i in roots:
        if number > i:
                if number//i**2 != 0:
                    if number//i**2 != 1:
                         if (i**2)*(number//i**2) == number:

                            answers[i] = number//i**2

    print(answers)
search(number)
window.mainloop()

所以我需要从 entry 中获取一个整数并将其作为 int 使用,但是 entry 给了我一个字符串,我不能 work.I 不能在 entry 中键入 int 因为程序由于错误而没有启动 Error:number = 整数(n) ValueError:以 10 为底的 int() 的无效文字:''

您正在获取几秒钟前创建的条目的值。当然不会了!在需要时使用 entry.get(),而不是之前的任何时候。将.get()放在search函数中,然后在其上调用int
更新了 search 函数:

def search(number):
    number = int(entry.get())
    for i in roots:
        if number > i:
                if number//i**2 != 0:
                    if number//i**2 != 1:
                         if (i**2)*(number//i**2) == number:

                            answers[i] = number//i**2

并删除代码中获取条目值并将其转换为 int 的两行。