Mundo em Python

Presidentes dos EUA

from tkinter import *
from tkinter import messagebox
presidentes = [
{"numero": 1, "nome": "George Washington", "mandato": "1789-1797", "partido": "Sem partido"},
{"numero": 2, "nome": "John Adams", "mandato": "1797-1801", "partido": "Federalista"},
{"numero": 3, "nome": "Thomas Jefferson", "mandato": "1801-1809", "partido": "Democrata-Republicano"},
{"numero": 4, "nome": "James Madison", "mandato": "1809-1817", "partido": "Democrata-Republicano"},
{"numero": 5, "nome": "James Monroe", "mandato": "1817-1825", "partido": "Democrata-Republicano"},
{"numero": 6, "nome": "John Quincy Adams", "mandato": "1825-1829", "partido": "Democrata-Republicano"},
{"numero": 7, "nome": "Andrew Jackson", "mandato": "1829-1837", "partido": "Democrata"},
{"numero": 8, "nome": "Martin Van Buren", "mandato": "1837-1841", "partido": "Democrata"},
{"numero": 9, "nome": "William Henry Harrison", "mandato": "1841", "partido": "Whig"},
{"numero": 10, "nome": "John Tyler", "mandato": "1841-1845", "partido": "Whig"},
{"numero": 11, "nome": "James K. Polk", "mandato": "1845-1849", "partido": "Democrata"},
{"numero": 12, "nome": "Zachary Taylor", "mandato": "1849-1850", "partido": "Whig"},
{"numero": 13, "nome": "Millard Fillmore", "mandato": "1850-1853", "partido": "Whig"},
{"numero": 14, "nome": "Franklin Pierce", "mandato": "1853-1857", "partido": "Democrata"},
{"numero": 15, "nome": "James Buchanan", "mandato": "1857-1861", "partido": "Democrata"},
{"numero": 16, "nome": "Abraham Lincoln", "mandato": "1861-1865", "partido": "Republicano"},
{"numero": 17, "nome": "Andrew Johnson", "mandato": "1865-1869", "partido": "Democrata"},
{"numero": 18, "nome": "Ulysses S. Grant", "mandato": "1869-1877", "partido": "Republicano"},
{"numero": 19, "nome": "Rutherford B. Hayes", "mandato": "1877-1881", "partido": "Republicano"},
{"numero": 20, "nome": "James A. Garfield", "mandato": "1881", "partido": "Republicano"},
{"numero": 21, "nome": "Chester A. Arthur", "mandato": "1881-1885", "partido": "Republicano"},
{"numero": 22, "nome": "Grover Cleveland", "mandato": "1885-1889", "partido": "Democrata"},
{"numero": 23, "nome": "Benjamin Harrison", "mandato": "1889-1893", "partido": "Republicano"},
{"numero": 24, "nome": "Grover Cleveland", "mandato": "1893-1897", "partido": "Democrata"},
{"numero": 25, "nome": "William McKinley", "mandato": "1897-1901", "partido": "Republicano"},
{"numero": 26, "nome": "Theodore Roosevelt", "mandato": "1901-1909", "partido": "Republicano"},
{"numero": 27, "nome": "William Howard Taft", "mandato": "1909-1913", "partido": "Republicano"},
{"numero": 28, "nome": "Woodrow Wilson", "mandato": "1913-1921", "partido": "Democrata"},
{"numero": 29, "nome": "Warren G. Harding", "mandato": "1921-1923", "partido": "Republicano"},
{"numero": 30, "nome": "Calvin Coolidge", "mandato": "1923-1929", "partido": "Republicano"},
{"numero": 31, "nome": "Herbert Hoover", "mandato": "1929-1933", "partido": "Republicano"},
{"numero": 32, "nome": "Franklin D. Roosevelt", "mandato": "1933-1945", "partido": "Democrata"},
{"numero": 33, "nome": "Harry S. Truman", "mandato": "1945-1953", "partido": "Democrata"},
{"numero": 34, "nome": "Dwight D. Eisenhower", "mandato": "1953-1961", "partido": "Republicano"},
{"numero": 35, "nome": "John F. Kennedy", "mandato": "1961-1963", "partido": "Democrata"},
{"numero": 36, "nome": "Lyndon B. Johnson", "mandato": "1963-1969", "partido": "Democrata"},
{"numero": 37, "nome": "Richard Nixon", "mandato": "1969-1974", "partido": "Republicano"},
{"numero": 38, "nome": "Gerald Ford", "mandato": "1974-1977", "partido": "Republicano"},
{"numero": 39, "nome": "Jimmy Carter", "mandato": "1977-1981", "partido": "Democrata"},
{"numero": 40, "nome": "Ronald Reagan", "mandato": "1981-1989", "partido": "Republicano"},
{"numero": 41, "nome": "George H. W. Bush", "mandato": "1989-1993", "partido": "Republicano"},
{"numero": 42, "nome": "Bill Clinton", "mandato": "1993-2001", "partido": "Democrata"},
{"numero": 43, "nome": "George W. Bush", "mandato": "2001-2009", "partido": "Republicano"},
{"numero": 44, "nome": "Barack Obama", "mandato": "2009-2017", "partido": "Democrata"},
{"numero": 45, "nome": "Donald Trump", "mandato": "2017-2021", "partido": "Republicano"},
{"numero": 46, "nome": "Joe Biden", "mandato": "2021-2025", "partido": "Democrata"},
{"numero": 47, "nome": "Donald Trump", "mandato": "2025-presente", "partido": "Republicano"}
] def limpar():
nome_presidente_entrada.delete(0, END)
numero_presidente_entrada.delete(0, END)
resultado_texto.config(text="") def num_pres():
n = numero_presidente.get()
if not n.isdigit():
messagebox.showerror("Erro", "Por favor, insira um número válido!")
return

n = int(n)
if 1 <= n <= 47:
for presidente in presidentes:
if presidente["numero"] == n:
mensagem = f'Nº {presidente["numero"]}: {presidente["nome"]}\n' \
f'Mandato: {presidente["mandato"]}\nPartido: {presidente["partido"]}'
resultado_texto.config(text=mensagem)
return
messagebox.showinfo("Não encontrado", "Presidente não encontrado!")
else:
messagebox.showerror("Erro", "Número inválido! Insira um valor entre 1 e 46.") def nome_pres():
nome = nome_presidente.get().strip().lower()
if not nome:
messagebox.showerror("Erro", "O campo de nome não pode estar vazio!")
return

for presidente in presidentes:
if presidente["nome"].lower() == nome:
mensagem = f'Nº {presidente["numero"]}: {presidente["nome"]}\n' \
f'Mandato: {presidente["mandato"]}\nPartido: {presidente["partido"]}'
resultado_texto.config(text=mensagem)
return
messagebox.showinfo("Não encontrado", "Nome do presidente não encontrado!") root = Tk()
root.geometry("800x300")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Presidentes dos EUA") # Elementos da interface
Label(root, text="Número do Presidente:", font=("Arial", 12), bg="#103030", fg="white").place(x=50, y=30)
numero_presidente = StringVar()
numero_presidente_entrada = Entry(root, textvariable=numero_presidente, font=("Arial", 12))
numero_presidente_entrada.place(x=250, y=30, width=200) Label(root, text="Nome do Presidente:", font=("Arial", 12), bg="#103030", fg="white").place(x=50, y=80)
nome_presidente = StringVar()
nome_presidente_entrada = Entry(root, textvariable=nome_presidente, font=("Arial", 12))
nome_presidente_entrada.place(x=250, y=80, width=200) Button(root, text="Buscar por Número", font=("Arial", 12), bg="green", fg="white", command=num_pres).place(x=550, y=25, width=200, height=40)
Button(root, text="Buscar por Nome", font=("Arial", 12), bg="blue", fg="white", command=nome_pres).place(x=550, y=75, width=200, height=40)
Button(root, text="Limpar", font=("Arial", 12), bg="orange", fg="white", command=limpar).place(x=200, y=130, width=100, height=40)
Button(root, text="Sair", font=("Arial", 12), bg="red", fg="white", command=root.quit).place(x=400, y=130, width=100, height=40) resultado_texto = Label(root, text="", font=("Arial", 14), bg="white", fg="black", justify=LEFT, anchor="nw")
resultado_texto.place(x=50, y=180, width=700, height=100) # Executar aplicação
root.mainloop()
0