Mundo em Python

Países dos BRICS

from tkinter import *

# Dicionário BRICS
brics = {
"Brasil": {
"capital": "Brasília",
"populacao": 203_000_000,
"area_km2": 8_516_000,
"pib_usd": 2_100_000_000_000,
"moeda": "Real (BRL)",
"continente": "América do Sul",
"idioma_oficial": "Português"
},
"Rússia": {
"capital": "Moscovo",
"populacao": 144_000_000,
"area_km2": 17_098_000,
"pib_usd": 2_200_000_000_000,
"moeda": "Rublo (RUB)",
"continente": "Europa/Ásia",
"idioma_oficial": "Russo"
},
"Índia": {
"capital": "Nova Deli",
"populacao": 1_400_000_000,
"area_km2": 3_287_000,
"pib_usd": 3_700_000_000_000,
"moeda": "Rupia Indiana (INR)",
"continente": "Ásia",
"idioma_oficial": "Hindi e Inglês"
},
"China": {
"capital": "Pequim",
"populacao": 1_400_000_000,
"area_km2": 9_597_000,
"pib_usd": 17_000_000_000_000,
"moeda": "Yuan (CNY)",
"continente": "Ásia",
"idioma_oficial": "Mandarim"
},
"África do Sul": {
"capital": "Pretória (executiva)",
"populacao": 60_000_000,
"area_km2": 1_221_000,
"pib_usd": 400_000_000_000,
"moeda": "Rand (ZAR)",
"continente": "África",
"idioma_oficial": "11 línguas oficiais"
},
"Arábia Saudita": {
"capital": "Riade",
"populacao": 36_000_000,
"area_km2": 2_149_000,
"pib_usd": 1_100_000_000_000,
"moeda": "Riyal Saudita (SAR)",
"continente": "Ásia",
"idioma_oficial": "Árabe"
},
"Irão": {
"capital": "Teerão",
"populacao": 88_000_000,
"area_km2": 1_648_000,
"pib_usd": 400_000_000_000,
"moeda": "Rial Iraniano (IRR)",
"continente": "Ásia",
"idioma_oficial": "Persa"
},
"Egito": {
"capital": "Cairo",
"populacao": 110_000_000,
"area_km2": 1_002_000,
"pib_usd": 400_000_000_000,
"moeda": "Libra Egípcia (EGP)",
"continente": "África",
"idioma_oficial": "Árabe"
},
"Etiópia": {
"capital": "Adis Abeba",
"populacao": 120_000_000,
"area_km2": 1_104_000,
"pib_usd": 150_000_000_000,
"moeda": "Birr Etíope (ETB)",
"continente": "África",
"idioma_oficial": "Amárico"
},
"Emirados Árabes Unidos": {
"capital": "Abu Dhabi",
"populacao": 10_000_000,
"area_km2": 83_600,
"pib_usd": 500_000_000_000,
"moeda": "Dirham (AED)",
"continente": "Ásia",
"idioma_oficial": "Árabe"
}
} # Função para formatar números em estilo português
def formatar_numero(valor):
if valor >= 1_000_000_000_000: # biliões
return f"{valor/1_000_000_000_000:.1f} biliões"
elif valor >= 1_000_000_000: # mil milhões
return f"{valor/1_000_000_000:.1f} mil milhões"
elif valor >= 1_000_000:
return f"{valor/1_000_000:.1f} milhões"
else:
return f"{valor:,}"

# Tkinter
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Países dos BRICS") titulo = Label(root, text="Países dos BRICS", font=("Arial", 28, "bold"),
bg="#103030", fg="#49e3e3")
titulo.place(relx=0.21, rely=0.05) texto_sub1 = Label(root, text="Escolha um país:", font=("Arial", 18, "bold"),
bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.32) var = StringVar()
var.set("Brasil") # valor inicial

# Função para mostrar info no Text
def app(selecionado):
if selecionado in brics:
pais = brics[selecionado]
mensagem = f"Informações sobre {selecionado}:\n\n" \
f"Capital: {pais['capital']}\n" \
f"População: {formatar_numero(pais['populacao'])}\n" \
f"Área (km²): {formatar_numero(pais['area_km2'])}\n" \
f"PIB (USD): {formatar_numero(pais['pib_usd'])}\n" \
f"Moeda: {pais['moeda']}\n" \
f"Continente: {pais['continente']}\n" \
f"Idioma oficial: {pais['idioma_oficial']}"
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
resultado_texto.insert(END, mensagem)
resultado_texto.config(state=DISABLED)
else:
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
resultado_texto.insert(END, "Opção inválida.")
resultado_texto.config(state=DISABLED) # OptionMenu ordenado alfabeticamente
dropDownList = sorted(brics.keys())
dropdown = OptionMenu(root, var, *dropDownList, command=app)
dropdown.place(relx=0.45, rely=0.33, relwidth=0.47)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")) # Frame e Text com Scrollbar
frame_texto = Frame(root, bg="#cfe2f3")
frame_texto.place(relx=0.05, rely=0.55, relwidth=0.9, relheight=0.4) scrollbar = Scrollbar(frame_texto)
scrollbar.pack(side=RIGHT, fill=Y) resultado_texto = Text(frame_texto, font=("Arial", 12, "bold"),
yscrollcommand=scrollbar.set, wrap=WORD)
resultado_texto.pack(fill=BOTH, expand=True)
resultado_texto.config(state=DISABLED) scrollbar.config(command=resultado_texto.yview) # Inicializa com Brasil
app("Brasil") root.mainloop()
0