Информатика, вопрос задал Dino1996 , 1 год назад

Создать окно с помощью tkinter и создать внутри окна кнопку, кнопка при нажатии должна была нас перекидывать в калькулятор ( калькулятор тоже нужно сделать, простой чтоб вычитал, прибавлял, умножал и делил ). На Python, пожалуйста чтоб код работ. Дам 50 баллов

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

Ответил sme41691
1

import tkinter as tk

class Calculator:

def __init__(self, master):

self.master = master

self.master.title("Calculator")

self.result = tk.StringVar()

self.result.set("0")

# Создаем строку для вывода результата

self.result_label = tk.Label(self.master, textvariable=self.result, font=("Arial", 24))

self.result_label.pack(padx=10, pady=10)

# Создаем кнопки для цифр и операций

buttons = [

"7", "8", "9", "+",

"4", "5", "6", "-",

"1", "2", "3", "*",

"0", ".", "=", "/"

]

# Функции для операций

def add():

self.operator = "+"

self.operand1 = float(self.result.get())

self.result.set("0")

def subtract():

self.operator = "-"

self.operand1 = float(self.result.get())

self.result.set("0")

def multiply():

self.operator = "*"

self.operand1 = float(self.result.get())

self.result.set("0")

def divide():

self.operator = "/"

self.operand1 = float(self.result.get())

self.result.set("0")

def calculate():

operand2 = float(self.result.get())

if self.operator == "+":

self.result.set(str(self.operand1 + operand2))

elif self.operator == "-":

self.result.set(str(self.operand1 - operand2))

elif self.operator == "*":

self.result.set(str(self.operand1 * operand2))

elif self.operator == "/":

try:

self.result.set(str(self.operand1 / operand2))

except ZeroDivisionError:

self.result.set("Error")

# Функция, которая вызывается при нажатии на кнопку

def button_click(button):

if button == "=":

# Вычисляем результат

calculate()

elif button == "+":

add()

elif button == "-":

subtract()

elif button == "*":

multiply()

elif button == "/":

divide()

else:

# Добавляем цифру в строку результата

if self.result.get() == "0":

self.result.set(button)


sme41691: if x == 1: он автоматом ставит отступ там и пиши
sme41691: Я код заменил
Dino1996: у меня все равно не работает код
Dino1996: снова линия 5
sme41691: И такая же ошибка?
Dino1996: тоже самое
sme41691: Дайте свой телеграмм/вк
sme41691: Там помогу, а то здесь не понятно
Dino1996: @zxz_nike
Dino1996: тг
Новые вопросы