Mundo em Python

Classificação Nível de UV

from tkinter import *

# Função de classificação UV
def classify_uv_index(uv_index):
if uv_index < 0:
raise ValueError("O índice UV não pode ser negativo.") if uv_index <= 2:
return {
"Classificação": "Baixo",
"Risco": "Baixo",
"Recomendações": [
"Permaneça ao ar livre sem necessidade de proteção adicional",
"Use óculos de sol em dias muito claros"
]
}
elif uv_index <= 5:
return {
"Classificação": "Moderado",
"Risco": "Moderado",
"Recomendações": [
"Use chapéu de aba larga",
"Use óculos de sol com proteção UV",
"Use protetor solar (FPS ≥ 30) nas partes expostas",
"Evite o sol entre 10h e 16h"
]
}
elif uv_index <= 7:
return {
"Classificação": "Alto",
"Risco": "Alto",
"Recomendações": [
"Procure sombra sempre que possível",
"Reaplique protetor solar a cada 2 horas",
"Use chapéu, óculos de sol e roupas leves"
]
}
elif uv_index <= 10:
return {
"Classificação": "Muito Alto",
"Risco": "Muito alto",
"Recomendações": [
"Reduza atividades ao ar livre entre 10h e 16h",
"Use roupas de proteção UV (tecido denso)",
"Use chapéu, óculos de sol e protetor solar FPS ≥ 30",
"Busque sombra rigorosamente"
]
}
else:
return {
"Classificação": "Extremo",
"Risco": "Extremamente alto",
"Recomendações": [
"Evite exposição direta ao sol",
"Adote todas as medidas de proteção: roupas longas, protetor solar FPS ≥ 30, sombra",
"Limite o tempo de exposição ao máximo"
]
} # Configuração da interface gráfica
def main():
root = Tk()
root.geometry("540x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Classificação Nível de UV") # Título
Label(root, text="Classificação Nível de UV", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3").place(relx=0.08, rely=0.05)
# Entrada de valor UV
Label(root, text="Nível de UV:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3").place(relx=0.2, rely=0.3)
nivel_uv_var = StringVar()
Entry(root, textvariable=nivel_uv_var, font=("Arial", 12, "bold"), bg="white", fg="blue", justify='center').place(relx=0.53, rely=0.31, relwidth=0.35) # Label de resultado
resultado_texto = Label(root, text="", font=("Arial", 12, "bold"), bg="#cfe2f3", justify=LEFT, anchor=NW)
resultado_texto.place(relx=0.05, rely=0.63, relwidth=0.9, relheight=0.3) # Funções dos botões dentro de main
def limpar():
nivel_uv_var.set("")
resultado_texto.config(text="") def verificar():
try:
uv_val = float(nivel_uv_var.get())
resultado = classify_uv_index(uv_val)
texto = (
f"Índice UV: {uv_val}\n"
f"Classificação: {resultado['Classificação']}\n"
f"Risco: {resultado['Risco']}\n"
f"Recomendações:\n" + "\n".join([f"- {r}" for r in resultado['Recomendações']])
)
resultado_texto.config(text=texto)
except ValueError as ve:
resultado_texto.config(text=f"Erro: {ve}") # Botões
Button(root, text="Verificar", bd=2, bg='#107db2', fg='white', font=('Verdana', 12, 'bold'), command=verificar).place(relx=0.1, rely=0.45, relwidth=0.25, relheight=0.1)
Button(root, text="Limpar", bd=2, bg='#107db2', fg='white', font=('Verdana', 12, 'bold'), command=limpar).place(relx=0.4, rely=0.45, relwidth=0.25, relheight=0.1)
Button(root, text="Sair", bd=2, bg='#107db2', fg='white', font=('Verdana', 12, 'bold'), command=root.destroy).place(relx=0.7, rely=0.45, relwidth=0.25, relheight=0.1) root.mainloop() if __name__ == "__main__":
main()
0