Mundo em Python

classificar o rendimento anual

from tkinter import *
from tkinter import messagebox # Função para classificar o rendimento anual
def app(event=None):
try:
rendimento_str = Rendimento_anual.get().strip() # Verifica se a entrada está vazia
if not rendimento_str:
raise ValueError("Entrada vazia") rendimento = float(rendimento_str) # Verifica se o rendimento é negativo
if rendimento < 0:
raise ValueError("Rendimento não pode ser negativo.") # Classificação com base no rendimento anual
if rendimento < 9000:
mensagem = "Classe: Pobre"
elif rendimento < 20000:
mensagem = "Classe: Classe Média Baixa"
elif rendimento < 40000:
mensagem = "Classe: Classe Média"
elif rendimento < 80000:
mensagem = "Classe: Classe Média Alta"
else:
mensagem = "Classe: Classe Alta"

resultado_texto.config(text=f"{mensagem}", fg="black")
except ValueError as ve:
# Atualiza o texto do resultado com a mensagem de erro
resultado_texto.config(text="Por favor, insira um número válido e positivo.", fg="red")
# Exibe uma caixa de mensagem de erro
messagebox.showerror("Erro de Entrada", str(ve)) # Função para limpar os campos de entrada e resultado
def limpar():
Rendimento_anual_entrada.delete(0, END)
resultado_texto.config(text="", fg="black") # Configuração da janela principal
root = Tk()
root.geometry("500x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Classificação da População com Base no Rendimento Anual") # Título
titulo = Label(
root,
text="Classificação com base\nno Rendimento Anual",
font=("Arial", 20, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.2, rely=0.05) # Label e Entry para Rendimento Anual
texto_sub1 = Label(
root,
text="Rendimento Anual (€): ",
font=("Arial", 14, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.05, rely=0.35) Rendimento_anual = StringVar()
Rendimento_anual_entrada = Entry(
root,
textvariable=Rendimento_anual,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Rendimento_anual_entrada.place(relx=0.5, rely=0.35, relwidth=0.4) Rendimento_anual_entrada.focus_set() # Botões
but1 = Button(
root,
text="Classificar",
bd=2,
bg='#107db2',
fg='white',
font=('Verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.15) but_limpar = Button(
root,
text="Limpar",
bd=2,
bg='#107db2',
fg='white',
font=('Verdana', 12, 'bold'),
command=limpar
)
but_limpar.place(relx=0.4, rely=0.5, relwidth=0.25, relheight=0.15) but_sair = Button(
root,
text="Sair",
bd=2,
bg='#107db2',
fg='white',
font=('Verdana', 12, 'bold'),
command=root.destroy
)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.15) # Label para exibir o resultado
resultado_texto = Label(
root,
text="",
font=("Arial", 14, "bold"),
bg="#cfe2f3",
fg="#103030",
relief=GROOVE,
bd=2
)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25) # Bind da tecla Enter para chamar a função app
root.bind('<Return>', app) # Iniciar o loop da aplicação
root.mainloop()
0