如何将程序修改得更好使程序运行不报错
时间: 2024-03-23 10:42:42 浏览: 85
首先,需要将代码中的两个函数 `__init__` 和 `mx` 改成 `__init__(self, window)` 和 `mx(self)`,因为这两个函数需要传入 `self` 参数。然后,需要在 `get()` 类的初始化函数中传入 `window` 参数,并在程序中使用 `self.window` 代替 `window`。此外,为了防止用户在输入时不小心输入了非数字字符,需要在 `mx` 函数中加入异常处理。修改后的代码如下所示:
```python
import tkinter as tk
import random
class get():
def __init__(self, window):
self.window = window
self.window.geometry('369x339')
self.window.title("猜数字游戏")
self.answer = random.randint(1,100)
self.count = 0
self.label = tk.Label(self.window, text="请输入1~100的数字:")
self.label.pack()
self.entry = tk.Entry(self.window, bd=10)
self.entry.pack()
self.button = tk.Button(self.window, text="提交", command=self.mx)
self.button.pack()
def mx(self):
try:
num = int(self.entry.get())
self.count += 1
if num < self.answer:
self.tip1 = tk.Label(text='猜小了,请重新输入!')
self.tip1.pack()
elif num > self.answer:
self.tip1 = tk.Label(text='猜大了,请重新输入!')
self.tip1.pack()
elif num == self.answer:
self.tip1 = tk.Label(text='恭喜你猜对了!!!')
self.tip1.pack()
self.tip2 = tk.Label(text='你一共猜了{}次'.format(self.count))
self.tip2.pack()
except ValueError:
self.tip1 = tk.Label(text='请输入数字!')
self.tip1.pack()
window = tk.Tk()
a = get(window)
window.mainloop()
```
这样修改后,程序就可以正常运行,并且能够处理用户的输入错误了。
阅读全文