Mundo em Python

Diferença em pontos percentuais e percentagem

 tkinter import *
from tkinter import ttk class Aplicacao:
def __init__(self, root):
self.root = root
self.janela()
self.frames_da_janela()
self.widgets_frame1()
root.mainloop() def janela(self):
self.root.title("Diferença em pontos percentuais e percentagem")
self.root.configure(background='#1e3743')
self.root.geometry("400x400")
self.root.resizable(False, False) def frames_da_janela(self):
self.frame_1 = Frame(self.root, bd=4, bg='#dfe3ee',
highlightbackground='#759fe6', highlightthickness=2)
self.frame_1.place(relx=0.02, rely=0.02, relwidth=0.96, relheight=0.95) def widgets_frame1(self):
self.abas = ttk.Notebook(self.frame_1)
self.percentagem_frame = Frame(self.abas)
self.pontos_percentuais_frame = Frame(self.abas)
self.percentagem_frame.configure(background="#dfe3ee")
self.pontos_percentuais_frame.configure(background="#dfe3ee") self.abas.add(self.percentagem_frame, text="Percentagem")
self.abas.add(self.pontos_percentuais_frame, text="Pontos Percentuais")
self.abas.place(relx=0, rely=0, relwidth=0.98, relheight=0.98) # -------------------- Aba Percentagem -------------------- #
self.lb_titulo = Label(self.percentagem_frame, text="Calcular percentagem de um valor",
bg='#dfe3ee', fg='#107db2', font=("Arial", "12", "bold"))
self.lb_titulo.place(relx=0.1, rely=0.05) self.valor = StringVar()
self.lb_valor = Label(self.percentagem_frame,
text="Valor:", bg='#dfe3ee', fg='#107db2', font=("Arial", "12"))
self.lb_valor.place(relx=0.1, rely=0.15)
self.valor_entry = Entry(self.percentagem_frame, textvariable=self.valor, justify='center')
self.valor_entry.place(relx=0.4, rely=0.15, relwidth=0.4) self.percentagem = StringVar()
self.lb_percentagem = Label(self.percentagem_frame,
text="Percentagem:", bg='#dfe3ee', fg='#107db2',
font=("Arial", "12"))
self.lb_percentagem.place(relx=0.1, rely=0.25)
self.percentagem_entry = Entry(self.percentagem_frame,
textvariable=self.percentagem, justify='center')
self.percentagem_entry.place(relx=0.4, rely=0.25, relwidth=0.4) self.bt_calcular1 = Button(self.percentagem_frame, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=self.calcular_percentagem)
self.bt_calcular1.place(relx=0.3, rely=0.45, relwidth=0.4, relheight=0.1) self.resultado1 = StringVar()
self.lb_resultado1 = Label(self.percentagem_frame, textvariable=self.resultado1, bg='#dfe3ee', fg='black',
font=("Arial", 12))
self.lb_resultado1.place(relx=0.05, rely=0.65, relwidth=0.9) # -------------------- Aba Pontos Percentuais -------------------- #
self.lb_titulo3 = Label(self.pontos_percentuais_frame,
text="1 ponto percentual é uma\n variação fixa no percentual",
bg='#dfe3ee', fg='#107db2',
font=("Arial", "12","bold"))
self.lb_titulo3.place(relx=0.15, rely=0.05)
self.lb_taxa_inicial = Label(self.pontos_percentuais_frame,
text="Taxa Inicial:", bg='#dfe3ee', fg='#107db2',
font=("Arial", "12"))
self.lb_taxa_inicial.place(relx=0.1, rely=0.2)
self.taxa_inicial = StringVar()
self.taxa_inicial_entry = Entry(self.pontos_percentuais_frame,
textvariable=self.taxa_inicial, justify='center')
self.taxa_inicial_entry.place(relx=0.4, rely=0.2, relwidth=0.4) self.lb_taxa_final = Label(self.pontos_percentuais_frame, text="Taxa Final:", bg='#dfe3ee', fg='#107db2',
font=("Arial", "12"))
self.lb_taxa_final.place(relx=0.1, rely=0.3)
self.taxa_final = StringVar()
self.taxa_final_entry = Entry(self.pontos_percentuais_frame, textvariable=self.taxa_final, justify='center')
self.taxa_final_entry.place(relx=0.4, rely=0.3, relwidth=0.4) self.bt_calcular2 = Button(self.pontos_percentuais_frame, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=self.calcular_pontos_percentuais)
self.bt_calcular2.place(relx=0.3, rely=0.4, relwidth=0.4, relheight=0.1) self.resultado2 = StringVar()
self.lb_resultado2 = Label(self.pontos_percentuais_frame, textvariable=self.resultado2, bg='#dfe3ee', fg='black',
font=("Arial", 12))
self.lb_resultado2.place(relx=0.05, rely=0.65, relwidth=0.9) def calcular_percentagem(self):
try:
valor = float(self.valor.get())
percentagem = float(self.percentagem.get())
resultado = valor * (percentagem / 100)
self.resultado1.set(f"{percentagem}% de {valor} é {round(resultado, 2)}")
except ValueError:
self.resultado1.set("Erro: Introduza valores válidos.") def calcular_pontos_percentuais(self):
try:
taxa_inicial = float(self.taxa_inicial.get())
taxa_final = float(self.taxa_final.get()) # Diferença absoluta e relativa
pontos_percentuais = taxa_final - taxa_inicial
diferenca_relativa = (pontos_percentuais / taxa_inicial) * 100

self.resultado2.set(f"Diferença Absoluta: {round(pontos_percentuais, 2)} pontos percentuais\n"
f"Diferença Relativa: {round(diferenca_relativa, 2)}%")
except ValueError:
self.resultado2.set("Erro: Introduza valores válidos.") if __name__ == "__main__":
root = Tk()
Aplicacao(root)
0