Калькулятор Систем счисления, python

у меня уже есть калькулятор систем счисления, но в него необходимо дополнить путь перевода. Те, когда клиент задает число, его систему счисления и сс, в которую хочет перевести число, на экране вместе с результатом, должно быть решения. Помогите пожалуйста написать этот код. Мой код калькулятора ниже

from tkinter import *


def convert_number():
    number = entry_number.get()
    from_base = int(entry_from_base.get())
    to_base = int(entry_to_base.get())

    try:
        if not number or not entry_from_base.get() or not entry_to_base.get():
            raise ValueError("Поля не могут \n быть пустыми")

        if from_base < 2 or from_base > 36 or to_base < 2 or to_base > 36:
            raise ValueError("Система счисления \n должна быть от 2 до 36")

        decimal_number = int(number, from_base)
        converted_number = ""

        while decimal_number > 0:
            remainder = decimal_number % to_base
            if remainder < 10:
                converted_number = str(remainder) + converted_number
            else:
                converted_number = chr(remainder + 55) + converted_number
            decimal_number = decimal_number // to_base

        label_result.config(text="Результат: " + converted_number)
    except ValueError as e:
        label_result.config(text="Ошибка: проверьте \n правильность \n введения данных" )


def validate_input(input_str):
    valid_chars = set('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    return all(char in valid_chars for char in input_str)


window1 = Tk()
window1.title("Приложение CtaviaNS")
window1.geometry('420x500')
window1.resizable(False, False)
window1.iconbitmap(default="64.ico")
window1.config(bg='#a6caf0')

k = Label(window1, text="Перевод чисел  \n в различные Системы Счисления")
k.pack(pady=0)
k.config(bg="#a6caf0", font=("W3$iP", 16))

l = Label(window1, text="Введите ваше число и \n его систему счисления:", font=("W3$iP", 13))
l.place(x=0, y=80)
l.config(bg="#a6caf0")


entry_number = Entry(window1, validate="key", width=25, font=("W3$iP", 10))
entry_number['validatecommand'] = (entry_number.register(validate_input), '%P')
entry_number.place(x=13, y=140)

entry_from_base = Entry(window1, validate="key", width=5, font=("W3$iP", 10))
entry_from_base['validatecommand'] = (entry_from_base.register(validate_input), '%P')
entry_from_base.place(x=240, y=140)

l = Label(window1, text="Введите систему счисления,", font=("W3$iP", 13))
l.place(x=10, y=170)
l.config(bg="#a6caf0")
l = Label(window1, text="в которую Вы хотите перевести число:", font=("W3$iP", 13))
l.place(x=10, y=195)
l.config(bg="#a6caf0")

entry_to_base = Entry(window1, validate="key", width=5, font=("W3$iP", 10))
entry_to_base['validatecommand'] = (entry_to_base.register(validate_input), '%P')
entry_to_base.place(x=13, y=240)
l = Label(window1, text="система счисления", font=("W3$iP", 13))
l.place(x=52, y=238)
l.config(bg="#a6caf0")


button_convert = Button(window1, text="Конвертировать", command=convert_number)
button_convert.place(x=13, y=280)
button_convert.config(fg="#000000", bg="#a7a6f0", font=("W3$iP", 15), activebackground='#f0a6ef', activeforeground="#000000")

label_result = Label(window1, text="Результат:", font=("W3$iP", 17))
label_result.place(x=10, y=350)
label_result.config(bg="#a6caf0")

window1.mainloop()

Ответы (0 шт):