Mundo em Python

Liga dos Campeões (por clubes)

from tkinter import *
maiores_campeoes_champions = {
"Real Madrid": {"pais": "Espanha", "titulos": 15, "anos": [1956, 1957, 1958, 1959, 1960, 1966, 1998, 2000, 2002, 2014, 2016, 2017, 2018, 2022, 2024]},
"AC Milan": {"pais": "Itália", "titulos": 7, "anos": [1963, 1969, 1989, 1990, 1994, 2003, 2007]},
"Bayern de Munique": {"pais": "Alemanha", "titulos": 6, "anos": [1974, 1975, 1976, 2001, 2013, 2020]},
"Liverpool": {"pais": "Inglaterra", "titulos": 6, "anos": [1977, 1978, 1981, 1984, 2005, 2019]},
"Barcelona": {"pais": "Espanha", "titulos": 5, "anos": [1992, 2006, 2009, 2011, 2015]},
"Ajax": {"pais": "Países Baixos", "titulos": 4, "anos": [1971, 1972, 1973, 1995]},
"Manchester United": {"pais": "Inglaterra", "titulos": 3, "anos": [1968, 1999, 2008]},
"Inter de Milão": {"pais": "Itália", "titulos": 3, "anos": [1964, 1965, 2010]},
"Chelsea": {"pais": "Inglaterra", "titulos": 2, "anos": [2012, 2021]},
"Benfica": {"pais": "Portugal", "titulos": 2, "anos": [1961, 1962]},
"Nottingham Forest": {"pais": "Inglaterra", "titulos": 2, "anos": [1979, 1980]},
"Juventus": {"pais": "Itália", "titulos": 2, "anos": [1985, 1996]},
"Porto": {"pais": "Portugal", "titulos": 2, "anos": [1987, 2004]},
"Manchester City": {"pais": "Inglaterra", "titulos": 1, "anos": [2023]},
"Paris Saint-Germain": {"pais": "França", "titulos": 1, "anos": [2025]},
"Celtic": {"pais": "Escócia", "titulos": 1, "anos": [1967]},
"Hamburgo": {"pais": "Alemanha", "titulos": 1, "anos": [1983]},
"Steaua Bucareste": {"pais": "Romênia", "titulos": 1, "anos": [1986]},
"Olympique de Marseille": {"pais": "França", "titulos": 1, "anos": [1993]},
"Borussia Dortmund": {"pais": "Alemanha", "titulos": 1, "anos": [1997]},
"Feyenoord": {"pais": "Países Baixos", "titulos": 1, "anos": [1970]},
"Aston Villa": {"pais": "Inglaterra", "titulos": 1, "anos": [1982]},
"PSV": {"pais": "Países Baixos", "titulos": 1, "anos": [1988]},
"Estrela Vermelha": {"pais": "Sérvia", "titulos": 1, "anos": [1991]}
} lista_clubes = sorted(maiores_campeoes_champions.keys())
lista_paises = sorted(set(dados["pais"] for dados in maiores_campeoes_champions.values()))
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Liga dos Campeões") titulo = Label(text="Liga dos Campeões", font=("Arial", 30, "bold"), bg="#103030", fg="#49e3e3")
titulo.pack(pady=15) frame = Frame(root, bg="#103030")
frame.pack() Label(frame, text="Escolha um clube:", font=("Arial", 16, "bold"), bg="#103030", fg="#49e3e3").grid(row=0, column=0, padx=10)
var_clube = StringVar()
var_clube.set(lista_clubes[0])
dropdown_clubes = OptionMenu(frame, var_clube, *lista_clubes)
dropdown_clubes.config(font=("Arial", 14, "bold"), background='#09A3BA', foreground="white")
dropdown_clubes.grid(row=0, column=1) Label(frame, text="Escolha um país:", font=("Arial", 16, "bold"), bg="#103030", fg="#49e3e3").grid(row=1, column=0, padx=10, pady=10)
var_pais = StringVar()
var_pais.set(lista_paises[0])
dropdown_paises = OptionMenu(frame, var_pais, *lista_paises)
dropdown_paises.config(font=("Arial", 14, "bold"), background='#09A3BA', foreground="white")
dropdown_paises.grid(row=1, column=1) resultado = Label(
root, text="", justify=LEFT, anchor="w", font=("Arial", 14),
bg="#103030", fg="white", wraplength=650
)
resultado.pack(padx=20, pady=20, fill=BOTH) def mostrar_info_clube(*args):
clube = var_clube.get()
dados = maiores_campeoes_champions.get(clube)
if dados:
info = f"[{clube}]\n"
info += f"País: {dados['pais']}\n"
info += f"Títulos: {dados['titulos']}\n"
info += f"Anos: {', '.join(str(ano) for ano in dados['anos'])}"
else:
info = "Clube não encontrado."
resultado.config(text=info) def mostrar_info_pais(*args):
pais = var_pais.get()
clubes_do_pais = {clube: dados for clube, dados in maiores_campeoes_champions.items() if dados["pais"] == pais}
total = sum(d["titulos"] for d in clubes_do_pais.values())
info = f"[{pais}]\n"
info += f"Total de Títulos: {total}\n\n"
for clube, dados in sorted(clubes_do_pais.items(), key=lambda x: -x[1]["titulos"]):
info += f"- {clube}: {dados['titulos']} título(s)\n"
resultado.config(text=info) var_clube.trace_add("write", mostrar_info_clube)
var_pais.trace_add("write", mostrar_info_pais) mostrar_info_clube()
root.mainloop()
0