Mundo em Python

Países da CPLP

from tkinter import *

cplp = [
{"país": "Brasil", "capital": "Brasília", "moeda": "Real (BRL)",
"população": 211_000_000, "área_km2": 8_515_000,
"independência": "7 de setembro de 1822", "regime": "República presidencialista",
"cód_iso": "BR", "cód_internet": ".br", "cód_telef": "+55"},
{"país": "Portugal", "capital": "Lisboa", "moeda": "Euro (EUR)",
"população": 10_827_000, "área_km2": 92_090,
"independência": "5 de outubro de 1143", "regime": "República semipresidencialista",
"cód_iso": "PT", "cód_internet": ".pt", "cód_telef": "+351"},
{"país": "Angola", "capital": "Luanda", "moeda": "Kwanza (AOA)",
"população": 39_000_000, "área_km2": 1_246_700,
"independência": "11 de novembro de 1975", "regime": "República presidencialista",
"cód_iso": "AO", "cód_internet": ".ao", "cód_telef": "+244"},
{"país": "Moçambique", "capital": "Maputo", "moeda": "Metical (MZN)",
"população": 33_000_000, "área_km2": 801_590,
"independência": "25 de junho de 1975", "regime": "República semipresidencialista",
"cód_iso": "MZ", "cód_internet": ".mz", "cód_telef": "+258"},
{"país": "Cabo Verde", "capital": "Praia", "moeda": "Escudo cabo-verdiano (CVE)",
"população": 593_000, "área_km2": 4_033,
"independência": "5 de julho de 1975", "regime": "República parlamentar",
"cód_iso": "CV", "cód_internet": ".cv", "cód_telef": "+238"},
{"país": "Guiné-Bissau", "capital": "Bissau", "moeda": "Franco CFA BCEAO (XOF)",
"população": 2_026_000, "área_km2": 36_125,
"independência": "24 de setembro de 1973", "regime": "República semipresidencialista",
"cód_iso": "GW", "cód_internet": ".gw", "cód_telef": "+245"},
{"país": "São Tomé e Príncipe", "capital": "São Tomé", "moeda": "Dobra (STN)",
"população": 220_000, "área_km2": 964,
"independência": "12 de julho de 1975", "regime": "República semipresidencialista",
"cód_iso": "ST", "cód_internet": ".st", "cód_telef": "+239"},
{"país": "Timor-Leste", "capital": "Díli", "moeda": "Dólar dos EUA (USD)",
"população": 1_507_000, "área_km2": 14_874,
"independência": "20 de maio de 2002", "regime": "República semipresidencialista",
"cód_iso": "TL", "cód_internet": ".tl", "cód_telef": "+670"},
{"país": "Guiné Equatorial", "capital": "Malabo", "moeda": "Franco CFA (XAF)",
"população": 1_795_000, "área_km2": 28_050,
"independência": "12 de outubro de 1968", "regime": "República presidencialista autoritária",
"cód_iso": "GQ", "cód_internet": ".gq", "cód_telef": "+240"}
] # --- Janela principal ---
root = Tk()
root.geometry("760x540")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Países da CPLP") titulo = Label(text="Países da CPLP",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05) texto_sub1 = Label(text="Escolha a hipótese:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.2) dropDownList = sorted([pais["país"] for pais in cplp])
var = StringVar()
var.set(dropDownList[0]) # valor inicial
dropdown = OptionMenu(root, var, *dropDownList)
dropdown.place(relx=0.4, rely=0.22, relwidth=0.58)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold")) # --- Funções ---
def limpar():
resultado_texto.config(text="") def app():
pais_selecionado = var.get()
for p in cplp:
if p["país"] == pais_selecionado:
texto = (
f"País: {p['país']}\n"
f"Capital: {p['capital']}\n"
f"Moeda: {p['moeda']}\n"
f"População: {p['população']:,} habitantes\n"
f"Área: {p['área_km2']:,} km²\n"
f"Data de Independência: {p['independência']}\n"
f"Tipo de Regime: {p['regime']}\n"
f"Cód. ISO: {p['cód_iso']}\n"
f"Cód. Internet: {p['cód_internet']}\n"
f"Cód. Telefónico: {p['cód_telef']}"
)
resultado_texto.config(text=texto)
break

# --- Botões ---
but1 = Button(
text="Mostrar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.4, relwidth=0.25, relheight=0.08) but_limpar = Button(
text="Limpar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=limpar
)
but_limpar.place(relx=0.4, rely=0.4, relwidth=0.25, relheight=0.08) but_sair = Button(
text="Sair",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=root.destroy
)
but_sair.place(relx=0.7, rely=0.4, relwidth=0.25, relheight=0.08) resultado_texto = Label(text="", font=("Arial", 12, "bold"),
bg="#cfe2f3", wraplength=580, justify=LEFT)
resultado_texto.place(relx=0.05, rely=0.5, relwidth=0.9, relheight=0.45) root.mainloop()
0