
Што неправильно from tkinter import* tk=Tk() tk.geometry("800x300") tk*"bg"="mintcream"
lbl1=Label(text="Радіус ") lbl1.place(x=275,y=25) def btn_click (): select=lbox.curselection() a=lbox.get(select) b=ent.get() if a=="площа": p=3.14(int(b),int(b)) elif a=="Довжина": p=23.14*(int(b)) lbl2=Label(text="Площа = ") lbl2.place(x=300,y=150) lbl3=Label(text= p) lbl3.place(x=380,y=150) lbl4=Label(text="Довжина = ") lbl4.place(x=300,y=150) lbl5=Label(text= p) lbl5.place(x=380,y=150) btn=Button(text="РОзрахувати",command=btn_click) btn.place(x=275,y=75,width=100,height=30) ent=Entry(bd=1) ent.place(x=425,y=25,width=150,height=30) lbox=Listbox(height=2) lbox.insert(END," Площа") lbox.insert(END," Довжина") lbox.place(x=425,y=75,width=150,height=30)

Ответы на вопрос

Ответ:
Ошибка в использовании Python2.
Если уж очень хочется использовать устаревшую 10 лет назад версию, то надо или не использовать в коде символы не входящие в диапазон ASCII, или указать интерпретатору кодировку кода, вставив в первую строку # -*- coding: utf-8 -*- Естественно, предварительно убедившись, что кодировка скрипта действительно UTF-8.
Объяснение:



Код містить декілька помилок та оформлювальних проблем. Давайте переглянемо їх і виправимо:
Помилка при присвоєнні фонового кольору (bg) вікну: Замість
tk*"bg"="mintcream"
, правильно використовуватиtk.config(bg="mintcream")
для встановлення фонового кольору вікна.Проблеми з обчисленням площі та довжини: В рядку
p=3.14(int(b),int(b))
таp=23.14*(int(b))
, вам потрібно змінити наp=3.14*(int(b)**2)
для обчислення площі круга таp=2*3.14*(int(b))
для обчислення довжини кола.Розташування елементів: Розташування елементів (labels, buttons, entry) здається несправним. Наприклад,
lbl4.place(x=300, y=150)
таlbl5.place(x=380, y=150)
мають однакові координати. Вам потрібно налаштувати правильне розташування елементів на вікні.Проблема з логікою вибору "площі" чи "довжини": Ви використовуєте одне і те ж ім'я змінної
p
для зберігання результату площі та довжини, що може призвести до проблем. Замість цього, використовуйте різні імена змінних для обчислення та відображення результатів площі та довжини.Підтримка округлення результатів: Ви маєте бажання округлити результати, якщо вони є числами з плаваючою точкою. Наприклад, використайте
round(p, 2)
, щоб округлити результат до 2 знаків після десяткової коми.
Ось виправлений код:
pythonfrom tkinter import *
tk = Tk()
tk.geometry("800x300")
tk.config(bg="mintcream")
lbl1 = Label(text="Радіус ")
lbl1.place(x=275, y=25)
def btn_click():
select = lbox.curselection()
a = lbox.get(select)
b = ent.get()
if a == "Площа":
p = round(3.14 * (int(b) ** 2), 2)
lbl2 = Label(text="Площа = ")
lbl2.place(x=300, y=150)
lbl3 = Label(text=p)
lbl3.place(x=380, y=150)
lbl4.destroy() # Remove the "Довжина" label if it exists
lbl5.destroy() # Remove the "Довжина" value label if it exists
elif a == "Довжина":
p = round(2 * 3.14 * (int(b)), 2)
lbl4 = Label(text="Довжина = ")
lbl4.place(x=300, y=150)
lbl5 = Label(text=p)
lbl5.place(x=380, y=150)
lbl2.destroy() # Remove the "Площа" label if it exists
lbl3.destroy() # Remove the "Площа" value label if it exists
btn = Button(text="Розрахувати", command=btn_click)
btn.place(x=275, y=75, width=100, height=30)
ent = Entry(bd=1)
ent.place(x=425, y=25, width=150, height=30)
lbox = Listbox(height=2)
lbox.insert(END, "Площа")
lbox.insert(END, "Довжина")
lbox.place(x=425, y=75, width=150, height=30)
tk.mainloop()
Зверніть увагу, що ви можете ще вдосконалити дизайн і розміщення елементів на вікні залежно від вашого бажання.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili