Mundo em Python

Taxa de ocupação - Brasileirão

from tkinter import *
brasileirao_estadios = {
"Palmeiras": {"estadio": "Allianz Parque", "capacidade": 43713},
"São Paulo": {"estadio": "Morumbi", "capacidade": 66795},
"Fluminense": {"estadio": "Maracanã", "capacidade": 78838},
"Bahia": {"estadio": "Arena Fonte Nova", "capacidade": 47915},
"Corinthians": {"estadio": "Neo Química Arena", "capacidade": 49205},
"Athletico-PR": {"estadio": "Arena da Baixada", "capacidade": 42372},
"Bragantino": {"estadio": "Nabi Abi Chedid", "capacidade": 17128},
"Chapecoense": {"estadio": "Arena Condá", "capacidade": 22600},
"Mirassol": {"estadio": "José Maria de Campos Maia", "capacidade": 15000},
"Coritiba": {"estadio": "Couto Pereira", "capacidade": 40502},
"Flamengo": {"estadio": "Maracanã", "capacidade": 78838},
"Botafogo": {"estadio": "Nilton Santos", "capacidade": 46931},
"Grêmio": {"estadio": "Arena do Grêmio", "capacidade": 55662},
"EC Vitória": {"estadio": "Barradão", "capacidade": 30000},
"Atlético-MG": {"estadio": "Arena MRV", "capacidade": 46000},
"Remo": {"estadio": "Baenão", "capacidade": 17250},
"Vasco da Gama": {"estadio": "São Januário", "capacidade": 21880},
"Santos": {"estadio": "Vila Belmiro", "capacidade": 16068},
"Internacional": {"estadio": "Beira-Rio", "capacidade": 50128},
"Cruzeiro": {"estadio": "Mineirão", "capacidade": 61927}
} root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Taxa de ocupação - Brasileirão") titulo = Label(
root,
text="Taxa de ocupação dos estádios da Brasileirão",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.05, rely=0.05) texto_sub1 = Label(
root,
text="Número de espectadores:",
font=("Arial", 14, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.1, rely=0.25) Numero_espectadores = StringVar() Numero_espectadores_entrada = Entry(
root,
textvariable=Numero_espectadores,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Numero_espectadores_entrada.place(relx=0.55, rely=0.26, relwidth=0.35)
Numero_espectadores_entrada.focus() texto_sub2 = Label(
root,
text="Estádio do:",
font=("Arial", 14, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub2.place(relx=0.1, rely=0.4) var = StringVar()
var.set("Palmeiras") dropdown = OptionMenu(root, var, *brasileirao_estadios.keys())
dropdown.place(relx=0.5, rely=0.4, relwidth=0.45, relheight=0.1)
dropdown.config(background='#09A3BA', foreground="white",font=('verdana', 14, 'bold'))
dropdown["menu"].config(background='#09A3BA', foreground="white",font=('verdana', 14, 'bold')) def limpar():
Numero_espectadores_entrada.delete(0, END)
resultado_texto.config(text="", fg="black") def app():
try:
clube = var.get()
espectadores = int(Numero_espectadores.get())
capacidade = brasileirao_estadios[clube]["capacidade"] if espectadores < 0:
resultado_texto.config(
text="O número de espectadores não pode ser negativo.",
fg="black"
)
return

if espectadores > capacidade:
resultado_texto.config(
text=f"Capacidade máxima do estádio: {capacidade} lugares.",
fg="black"
)
return

taxa = (espectadores / capacidade) * 100
if taxa < 40:
classificacao = "Baixa ocupação"
cor = "red"
elif taxa < 75:
classificacao = "Média ocupação"
cor = "orange"
else:
classificacao = "Alta ocupação"
cor = "green"

resultado_texto.config(
text=f"Estádio: {brasileirao_estadios[clube]['estadio']} | "
f"Taxa: {taxa:.2f}% | "
f"Classificação: {classificacao}",
fg=cor
) except ValueError:
resultado_texto.config(
text="Por favor, insira um número válido.",
fg="black"
) but1 = Button(
root,
text="Calcular",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.1) 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.55, relwidth=0.25, relheight=0.1) 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.55, relwidth=0.25, relheight=0.1) resultado_texto = Label(
root,
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.2) root.mainloop()
0