#tkinter #syntax-error #var
#tkinter #синтаксическая ошибка #var
Вопрос:
ну, я запускаю python, создавая калькулятор, и не могу понять ошибку, мой код выглядит так
import tkinter as Tk
root = Tk()
root.Geometry("250*400 300 300")
root.resizeable(0,0)
root.title("Calculator")
btnrow1 = Frame(root , bg="#00000")
btnrow1.Pack(expand = True, fill = "both",)
btnrow2 = Frame(root)
btnrow2.Pack(expand = True, fill = "both",)
btnrow3 = Frame(root)
btnrow3.Pack(expand = True, fill = "both",)
btnrow4 = Frame(root)
btnrow4.Pack(expand = True, fill = "both",)
btn1 = Button(
btnrow1,
text = "1",
font = ("verdana",22)
)
btn1.Pack(side = LEFT , expand = True,)
root.mainloop()
и это выдает синтаксическую ошибку в btnrow2
(base) C:UsershpDocumentsdatascience>python -u "c:UsershpDocumentscalculatorcalculatormadebyshaan.py"
File "c:UsershpDocumentscalculatorcalculatormadebyshaan.py", line 11
btnrow2 = Frame(root)
^
SyntaxError: invalid syntax
может быть, это выдает ошибку позже также btnrow3
пожалуйста, помогите мне, я новичок в Python
спасибо
Комментарии:
1. Вместо этого я попал
TypeError: 'module' object is not callable
в строкуroot = Tk()
.
Ответ №1:
В конечном счете, это SyntaxError
потому, что вы ставите запятые в конце своих pack
вызовов. Исправьте, просто удалив их (например, btnrow1.Pack(expand = True, fill = "both",)
становится btnrow1.Pack(expand = True, fill = "both")
). Как только вы преодолеете эту проблему, вы столкнетесь с парой других проблем, которые заключаются в следующем:
- Вы импортируете,
tkinter
используяimport tkinter as Tk
, но затем ссылаетесь на классы, используя только их имена (т. Е. Как если бы вы импортировали с помощьюfrom tkinter import *
). Чтобы решить эту проблему, либо измените ссылки наtkinter
классы только с их имен наTk.<name>
(например,Tk()
becomesTk.Tk()
иFrame
becomesTk.Frame
), либо измените оператор импорта наfrom tkinter import *
. - Вы пытаетесь вызвать методы класса с заглавной буквой в начале (особенно для
Geometry
иPack
). Они должны быть полностью в нижнем регистре (geometry
иpack
).
Кстати, для кнопок калькулятора я бы порекомендовал вам заглянуть в grid
manager вместо pack
, поскольку это (сетка кнопок 3×3 с номерами 1-9) является примером из учебника о том, когда ее следует использовать.