import tkinter as tk BUTTONS = B T [' Г'1 ['0 1 def make_click (ch): def click (e) print (ch) if ch as "scale (0); return else: disp. insert (tk. END, ch) return click def calc (e); label ('text"] = '-' + atr (eval (disp. get ())) win " tk. Tk ( win, title (" it W 28") I win, geometry ("400x480*) disp - tk. Entry (win, foot- (°' , 20), justify-"center") dasp, pack (fall- x ) disp, bind (' (Return»' , cale) label - tk. Label (win, foots ('* label, pack (fill-'x') ‚20), anchor= "center") fr = tk. Frane (win) Er. pack () for y, cols in enunerate (BUTTONS) for x, n in enunerate (cols): btn - tk. Button (fr, text=n, foot= (*' , 20), width-6, height=3) btn. grid (row-y+1, colunn=x+1) btn. bind (<1> make_click (n))帮我看一下这些代码哪里有问题
时间: 2024-04-28 09:25:17 浏览: 105
这段代码存在以下问题:
1. 第一行 `import tkinter as tk BUTTONS = B T [' Г'1 ['0 1` 中,应该使用换行符将两行代码分开。
2. 第4行 `if ch as "scale (0); return else: disp. insert (tk. END, ch) return click` 中,应该将 `as` 改为 `==`。
3. 第13行 `win " tk. Tk ( win, title (" it W 28") I win, geometry ("400x480*)` 中,应该去掉双引号前面的空格,并且将 `I` 改为 `,`。
4. 第14行 `disp - tk. Entry (win, foot- (°' , 20), justify-"center")` 中,应该将 `-` 改为 `=`。
5. 第15行 `dasp, pack (fall- x )` 中,应该将 `,` 改为 `.`。
6. 第16行 `disp, bind (' (Return»' , cale)` 中,应该将 `cale` 改为 `calc`。
7. 第18行 `label - tk. Label (win, foots ('* label, pack (fill-'x')` 中,应该将 `foots` 改为 `font`。
8. 第19行 `‚20), anchor= "center")` 中,应该将 `‚20)` 改为 `,20)`。
9. 第21行 `Er. pack ()` 中,应该将 `Er` 改为 `fr`。
10. 第22行 `for y, cols in enunerate (BUTTONS) for x, n in enunerate (cols):` 中,应该将 `enunerate` 改为 `enumerate`。
11. 第23行 `btn - tk. Button (fr, text=n, foot= (*' , 20), width-6, height=3)` 中,应该将 `-` 改为 `=`。
12. 第24行 `btn. grid (row-y+1, colunn=x+1)` 中,应该将 `colunn` 改为 `column`。
13. 第25行 `btn. bind (<1> make_click (n))` 中,应该将 `<1>` 改为 `'<1>'`。
修改后的代码如下:
```
import tkinter as tk
BUTTONS = [['7', '8', '9', '/', 'C'],
['4', '5', '6', '*', ' '],
['1', '2', '3', '-', ' '],
['0', '.', '=', '+', ' ']]
def make_click(ch):
def click(e):
print(ch)
if ch == 'C':
disp.delete(0, tk.END)
elif ch == '=':
label['text'] = '-' + str(eval(disp.get()))
else:
disp.insert(tk.END, ch)
return click
def calc(e):
label['text'] = '-' + str(eval(disp.get()))
win = tk.Tk()
win.title("it W 28")
win.geometry("400x480")
disp = tk.Entry(win, font=('Arial', 20), justify="center")
disp.pack(fill='x')
label = tk.Label(win, font=('Arial', 20), anchor="center")
label.pack(fill='x')
fr = tk.Frame(win)
fr.pack()
for y, cols in enumerate(BUTTONS):
for x, n in enumerate(cols):
btn = tk.Button(fr, text=n, font=('Arial', 20), width=6, height=3)
btn.grid(row=y+1, column=x+1)
btn.bind('<1>', make_click(n))
win.bind('<Return>', calc)
win.mainloop()
```
阅读全文