随机数生成器,int(),.get()

时间:2021-04-28 20:20:52

标签: python tkinter

此代码只是返回一个错误。我不知道如何为这个随机数生成器组合 int().get().get() 用于获取输入的数字并将其用作某人希望从中输出随机数的变量。

from tkinter import *
import tkinter as tk
import random

root = tk.Tk()
root.title("random number generator")

def new_number():
    text.config(text=random.randint(0, 100), font=("times", 50))

tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)

text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))
text.grid(row=1, column=2)

button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)

root.mainloop()

3 个答案:

答案 0 :(得分:1)

您需要设置默认值。当您使用:

text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))

tb1.get() 和 tb2.get() 为空。

解决方案:

from tkinter import *
import tkinter as tk
import random

root = tk.Tk()
root.title("random number generator")


def new_number():
    text.config(text=str(random.randint(int(tb1.get()), int(tb2.get()))), font=("times", 50))


tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)

tb1.insert(10, 0)
tb2.insert(10, 100)

text = tk.Label(root, text=str(random.randint(int(tb1.get()), int(tb2.get()))), font=("times", 50))
text.grid(row=1, column=2)

button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)

root.mainloop()

答案 1 :(得分:0)

您必须为 tb1tb2 条目小部件插入一个整数。当您定义变量 text 时,您试图获取 tb1 的 int,但它不起作用,因为其中没有任何内容。因此,您应该在创建 text 变量之前插入一个整数。

代码:

from tkinter import *
import tkinter as tk
import random

root = tk.Tk()
root.title("random number generator")

def new_number():
  text.config(text=random.randint(0, 100), font=("times", 50))


tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)

# Insert a number to each input box
tb1.insert(END, 1)
tb2.insert(END, 2)


text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))
text.grid(row=1, column=2)

button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)

root.mainloop()

答案 2 :(得分:0)

如果你使用这个:

from tkinter import *
import tkinter as tk
import random

root = tk.Tk()
root.title("random number generator")

def new_number():
    try:
        lower_bound = int(tb1.get())
        upper_bound = int(tb2.get())
        assert upper_bound >= lower_bound, "Make sure that the lower bound is lower"
        text.config(text=random.randint(lower_bound, upper_bound))
    except AssertionError:
        text.config(text="Lower abound must be lower")
    except ValueError:
        text.config(text="Invalid data")

tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=0)
tb2.grid(row=0, column=3)



text = tk.Label(root, text="Random number", font=("times", 50))
text.grid(row=1, column=2)

button = tk.Button(root, text="New number", width=15, command=new_number,
                   font=("times", 50))
button.grid(row=2, column=2)

root.mainloop()

它将处理所有错误。