Нашёл ещё одну ошибку Калькулятора, как обойти ошибку, деления на ноль.??)))Просто вместо условно
a = "√"
Пиши
a = chr(8730)
И попробовал заменить значек Кнопки /, на значек ÷ Рвёт код.!!!(((Нашёл ещё одну ошибку Калькулятора, как обойти ошибку, деления на ноль.??)))
Кнопки по кодам прописал, единственное, как быть с кнопкой [÷] (код=247), как её прописать.??)))И попробовал заменить значек Кнопки /, на значек ÷ Рвёт код.!!!(((
import tkinter as tk
from math import *
def add_digit(digit):
value=calc.get()
if value[0]=="0":
value=value[1:]
calc.delete(0,tk.END)
calc.insert(0,value+digit)
def add_operation(operation):
value = calc.get()
if operation == "1/x":
operation = ""
calculate()
value = calc.get()
value = str(1/float(value))
elif operation == "x2":
operation = ""
calculate()
value = calc.get()
value = str(float(value)**2)
elif operation == chr(8730):
operation = ""
calculate()
value = calc.get()
value = str(float(value)**0.5)
elif operation == chr(8592):
operation = ""
calculate()
value = calc.get()
value = str(float(value[:-1])) if len(value) > 1 else "0"
elif operation == chr(177):
operation = ""
calculate()
value = calc.get()
value = str(float(value)*-1)
elif value[-1] in "-+/*":
value = value[:-1]
elif "+" in value or "-" in value or "/" in value or "*" in value:
calculate()
value = calc.get()
value = value.removesuffix(".0")
calc.delete(0, tk.END)
calc.insert(0, value+operation)
def calculate():
value=calc.get()
if value[-1] in "+-/*":
value = value+value[:-1]
calc.delete(0, tk.END)
calc.insert(0, str(eval(value)).removesuffix(".0"))
def clear():
calc.delete(0, tk.END)
calc.insert(0,0)
def abbreviation(digit):
return tk.Button(text=digit, bd=5, command=lambda: add_digit(digit))
def abbreviation_operation_button(operation):
return tk.Button(text=operation, bd=5, command=lambda: add_operation(operation))
def abbreviation_calc_button(operation):
return tk.Button(text=operation, bd=5, command=calculate)
def abbreviation_clear_button(operation):
return tk.Button(text=operation, bd=5, command=clear)
root=tk.Tk()
root["bg"] = ""
root.title("Калькулятор")
root.wm_attributes("-alpha", 1)
root.geometry("260x417")
root.resizable(width=False, height=False)
calc=tk.Entry(root, justify=tk.RIGHT, font=("Times New Roman", 15),width=15)
calc.insert(0,"0")
calc.grid(row=0, column=0, columnspan=4,stick="we", padx=5)
abbreviation("7").grid(row=3, column=0, stick="wens", pady=2, padx=2)
abbreviation("8").grid(row=3, column=1, stick="wens", pady=2, padx=2)
abbreviation("9").grid(row=3, column=2, stick="wens", pady=2, padx=2)
abbreviation("4").grid(row=4, column=0, stick="wens", pady=2, padx=2)
abbreviation("5").grid(row=4, column=1, stick="wens", pady=2, padx=2)
abbreviation("6").grid(row=4, column=2, stick="wens", pady=2, padx=2)
abbreviation("1").grid(row=5, column=0, stick="wens", pady=2, padx=2)
abbreviation("2").grid(row=5, column=1, stick="wens", pady=2, padx=2)
abbreviation("3").grid(row=5, column=2, stick="wens", pady=2, padx=2)
abbreviation("0").grid(row=6, column=1, stick="wens", pady=2, padx=2)
abbreviation_clear_button("C").grid(row=2, column=1, stick="wens", pady=2, padx=2)
abbreviation_operation_button("x2").grid(row=1, column=0, columnspan=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button("1/x").grid(row=1, column=2, columnspan=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(8730)).grid(row=2, column=0, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(8592)).grid(row=2, column=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(177)).grid(row=6, column=0, stick="wens", pady=2, padx=2)
abbreviation_operation_button("/").grid(row=2, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("*").grid(row=3, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("-").grid(row=4, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("+").grid(row=5, column=3, stick="wens", pady=2, padx=2)
abbreviation_calc_button("=").grid(row=6, column=2, columnspan=2, stick="wens", pady=2, padx=2)
root.grid_columnconfigure(0,minsize=65)
root.grid_columnconfigure(1,minsize=65)
root.grid_columnconfigure(2,minsize=65)
root.grid_columnconfigure(3,minsize=65)
root.grid_columnconfigure(4,minsize=65)
root.grid_rowconfigure(1,minsize=65)
root.grid_rowconfigure(2,minsize=65)
root.grid_rowconfigure(3,minsize=65)
root.grid_rowconfigure(4,minsize=65)
root.grid_rowconfigure(5,minsize=65)
root.grid_rowconfigure(6,minsize=65)
root.mainloop()
Просто вместо условно
a = "√"
Пиши
a = chr(8730)
import tkinter as tk
from tkinter import messagebox
from math import *
def add_digit(digit):
value=calc.get()
if value[0]=="0":
value=value[1:]
calc.delete(0,tk.END)
calc.insert(0,value+digit)
def add_operation(operation):
value = calc.get()
if operation == "1/x":
operation = ""
calculate()
value = calc.get()
value = str(1/float(value))
elif operation == "x2":
operation = ""
calculate()
value = calc.get()
value = str(float(value)**2)
elif operation == chr(8730):
operation = ""
calculate()
value = calc.get()
value = str(float(value)**0.5)
elif operation == chr(8592):
operation = ""
calculate()
value = calc.get()
value = str(float(value[:-1])) if len(value) > 1 else "0"
elif operation == chr(177):
operation = ""
calculate()
value = calc.get()
value = str(float(value)*-1)
elif value[-1] in "-+/*":
value = value[:-1]
elif "+" in value or "-" in value or "/" in value or "*" in value:
calculate()
value = calc.get()
value = value.removesuffix(".0")
calc.delete(0, tk.END)
calc.insert(0, value+operation)
def calculate():
value=calc.get()
if value[-1] in "+-/*":
value = value+value[:-1]
calc.delete(0, tk.END)
try:
calc.insert(0, str(eval(value)).removesuffix(".0"))
except (NameError,SyntaxError):
messagebox.showinfo("Внимание","Нужно вводить цифры!")
calc.insert (0,0)
except ZeroDivisionError:
messagebox.showinfo("Внимание","Деление на ноль невозможно!")
calc.insert(0,0)
def clear():
calc.delete(0, tk.END)
calc.insert(0,0)
def abbreviation(digit):
return tk.Button(text=digit, bd=5, command=lambda: add_digit(digit))
def abbreviation_operation_button(operation):
return tk.Button(text=operation, bd=5, command=lambda: add_operation(operation))
def abbreviation_calc_button(operation):
return tk.Button(text=operation, bd=5, command=calculate)
def abbreviation_clear_button(operation):
return tk.Button(text=operation, bd=5, command=clear)
root=tk.Tk()
root["bg"] = ""
root.title("Калькулятор")
root.wm_attributes("-alpha", 1)
root.geometry("260x417")
root.resizable(width=False, height=False)
calc=tk.Entry(root, justify=tk.RIGHT, font=("Times New Roman", 15),width=15)
calc.insert(0,"0")
calc.grid(row=0, column=0, columnspan=4,stick="we", padx=5)
abbreviation("7").grid(row=3, column=0, stick="wens", pady=2, padx=2)
abbreviation("8").grid(row=3, column=1, stick="wens", pady=2, padx=2)
abbreviation("9").grid(row=3, column=2, stick="wens", pady=2, padx=2)
abbreviation("4").grid(row=4, column=0, stick="wens", pady=2, padx=2)
abbreviation("5").grid(row=4, column=1, stick="wens", pady=2, padx=2)
abbreviation("6").grid(row=4, column=2, stick="wens", pady=2, padx=2)
abbreviation("1").grid(row=5, column=0, stick="wens", pady=2, padx=2)
abbreviation("2").grid(row=5, column=1, stick="wens", pady=2, padx=2)
abbreviation("3").grid(row=5, column=2, stick="wens", pady=2, padx=2)
abbreviation("0").grid(row=6, column=1, stick="wens", pady=2, padx=2)
abbreviation_clear_button("C").grid(row=2, column=1, stick="wens", pady=2, padx=2)
abbreviation_operation_button("x2").grid(row=1, column=0, columnspan=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button("1/x").grid(row=1, column=2, columnspan=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(8730)).grid(row=2, column=0, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(8592)).grid(row=2, column=2, stick="wens", pady=2, padx=2)
abbreviation_operation_button(chr(177)).grid(row=6, column=0, stick="wens", pady=2, padx=2)
abbreviation_operation_button("/").grid(row=2, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("*").grid(row=3, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("-").grid(row=4, column=3, stick="wens", pady=2, padx=2)
abbreviation_operation_button("+").grid(row=5, column=3, stick="wens", pady=2, padx=2)
abbreviation_calc_button("=").grid(row=6, column=2, columnspan=2, stick="wens", pady=2, padx=2)
root.grid_columnconfigure(0,minsize=65)
root.grid_columnconfigure(1,minsize=65)
root.grid_columnconfigure(2,minsize=65)
root.grid_columnconfigure(3,minsize=65)
root.grid_columnconfigure(4,minsize=65)
root.grid_rowconfigure(1,minsize=65)
root.grid_rowconfigure(2,minsize=65)
root.grid_rowconfigure(3,minsize=65)
root.grid_rowconfigure(4,minsize=65)
root.grid_rowconfigure(5,minsize=65)
root.grid_rowconfigure(6,minsize=65)
root.mainloop()
А как это реализовать.??)))Ну можно выводить в поле с числами в виде текста например
Спасибо Вам большое, всё работает.!!!)))Python:except ZeroDivisionError: calc.insert(0, 'Деление на 0!')