Tabela periódica por Símbolo Químico

import unicodedata
from tkinter import *

# Dicionário da tabela periódica
tabela_periodica = {
1: {"nome": "Hidrogênio", "simbolo": "H", "massa_atomica": 1.008},
2: {"nome": "Hélio", "simbolo": "He", "massa_atomica": 4.0026},
3: {"nome": "Lítio", "simbolo": "Li", "massa_atomica": 6.94},
4: {"nome": "Berílio", "simbolo": "Be", "massa_atomica": 9.0122},
5: {"nome": "Boro", "simbolo": "B", "massa_atomica": 10.81},
6: {"nome": "Carbono", "simbolo": "C", "massa_atomica": 12.011},
7: {"nome": "Nitrogênio", "simbolo": "N", "massa_atomica": 14.007},
8: {"nome": "Oxigênio", "simbolo": "O", "massa_atomica": 15.999},
9: {"nome": "Flúor", "simbolo": "F", "massa_atomica": 18.998},
10: {"nome": "Neônio", "simbolo": "Ne", "massa_atomica": 20.180},
11: {"nome": "Sódio", "simbolo": "Na", "massa_atomica": 22.990},
12: {"nome": "Magnésio", "simbolo": "Mg", "massa_atomica": 24.305},
13: {"nome": "Alumínio", "simbolo": "Al", "massa_atomica": 26.982},
14: {"nome": "Silício", "simbolo": "Si", "massa_atomica": 28.085},
15: {"nome": "Fósforo", "simbolo": "P", "massa_atomica": 30.974},
16: {"nome": "Enxofre", "simbolo": "S", "massa_atomica": 32.06},
17: {"nome": "Cloro", "simbolo": "Cl", "massa_atomica": 35.45},
18: {"nome": "Argônio", "simbolo": "Ar", "massa_atomica": 39.948},
19: {"nome": "Potássio", "simbolo": "K", "massa_atomica": 39.098},
20: {"nome": "Cálcio", "simbolo": "Ca", "massa_atomica": 40.078},
21: {"nome": "Escândio", "simbolo": "Sc", "massa_atomica": 44.956},
22: {"nome": "Titânio", "simbolo": "Ti", "massa_atomica": 47.867},
23: {"nome": "Vanádio", "simbolo": "V", "massa_atomica": 50.942},
24: {"nome": "Cromo", "simbolo": "Cr", "massa_atomica": 51.996},
25: {"nome": "Manganês", "simbolo": "Mn", "massa_atomica": 54.938},
26: {"nome": "Ferro", "simbolo": "Fe", "massa_atomica": 55.845},
27: {"nome": "Cobalto", "simbolo": "Co", "massa_atomica": 58.933},
28: {"nome": "Níquel", "simbolo": "Ni", "massa_atomica": 58.693},
29: {"nome": "Cobre", "simbolo": "Cu", "massa_atomica": 63.546},
30: {"nome": "Zinco", "simbolo": "Zn", "massa_atomica": 65.38},
31: {"nome": "Gálio", "simbolo": "Ga", "massa_atomica": 69.723},
32: {"nome": "Germânio", "simbolo": "Ge", "massa_atomica": 72.63},
33: {"nome": "Arsênio", "simbolo": "As", "massa_atomica": 74.922},
34: {"nome": "Selênio", "simbolo": "Se", "massa_atomica": 78.971},
35: {"nome": "Bromo", "simbolo": "Br", "massa_atomica": 79.904},
36: {"nome": "Criptônio", "simbolo": "Kr", "massa_atomica": 83.798},
37: {"nome": "Rubídio", "simbolo": "Rb", "massa_atomica": 85.468},
38: {"nome": "Estrôncio", "simbolo": "Sr", "massa_atomica": 87.62},
39: {"nome": "Ítrio", "simbolo": "Y", "massa_atomica": 88.906},
40: {"nome": "Zircônio", "simbolo": "Zr", "massa_atomica": 91.224},
41: {"nome": "Nióbio", "simbolo": "Nb", "massa_atomica": 92.906},
42: {"nome": "Molibdênio", "simbolo": "Mo", "massa_atomica": 95.95},
43: {"nome": "Tecnécio", "simbolo": "Tc", "massa_atomica": 98},
44: {"nome": "Rutênio", "simbolo": "Ru", "massa_atomica": 101.07},
45: {"nome": "Ródio", "simbolo": "Rh", "massa_atomica": 102.91},
46: {"nome": "Paládio", "simbolo": "Pd", "massa_atomica": 106.42},
47: {"nome": "Prata", "simbolo": "Ag", "massa_atomica": 107.87},
48: {"nome": "Cádmio", "simbolo": "Cd", "massa_atomica": 112.41},
49: {"nome": "Índio", "simbolo": "In", "massa_atomica": 114.82},
50: {"nome": "Estanho", "simbolo": "Sn", "massa_atomica": 118.71},
51: {"nome": "Antimônio", "simbolo": "Sb", "massa_atomica": 121.76},
52: {"nome": "Telúrio", "simbolo": "Te", "massa_atomica": 127.60},
53: {"nome": "Iodo", "simbolo": "I", "massa_atomica": 126.90},
54: {"nome": "Xenônio", "simbolo": "Xe", "massa_atomica": 131.29},
55: {"nome": "Césio", "simbolo": "Cs", "massa_atomica": 132.91},
56: {"nome": "Bário", "simbolo": "Ba", "massa_atomica": 137.33},
57: {"nome": "Lantânio", "simbolo": "La", "massa_atomica": 138.91},
58: {"nome": "Cério", "simbolo": "Ce", "massa_atomica": 140.12},
59: {"nome": "Praseodímio", "simbolo": "Pr", "massa_atomica": 140.91},
60: {"nome": "Neodímio", "simbolo": "Nd", "massa_atomica": 144.24},
61: {"nome": "Promécio", "simbolo": "Pm", "massa_atomica": 145},
62: {"nome": "Samário", "simbolo": "Sm", "massa_atomica": 150.36},
63: {"nome": "Európio", "simbolo": "Eu", "massa_atomica": 151.96},
64: {"nome": "Gadolínio", "simbolo": "Gd", "massa_atomica": 157.25},
65: {"nome": "Térbio", "simbolo": "Tb", "massa_atomica": 158.93},
66: {"nome": "Disprósio", "simbolo": "Dy", "massa_atomica": 162.50},
67: {"nome": "Hólmio", "simbolo": "Ho", "massa_atomica": 164.93},
68: {"nome": "Érbio", "simbolo": "Er", "massa_atomica": 167.26},
69: {"nome": "Túlio", "simbolo": "Tm", "massa_atomica": 168.93},
70: {"nome": "Itérbio", "simbolo": "Yb", "massa_atomica": 173.05},
71: {"nome": "Lutécio", "simbolo": "Lu", "massa_atomica": 174.97},
72: {"nome": "Háfnio", "simbolo": "Hf", "massa_atomica": 178.49},
73: {"nome": "Tântalo", "simbolo": "Ta", "massa_atomica": 180.95},
74: {"nome": "Tungstênio", "simbolo": "W", "massa_atomica": 183.84},
75: {"nome": "Rênio", "simbolo": "Re", "massa_atomica": 186.21},
76: {"nome": "Ósmio", "simbolo": "Os", "massa_atomica": 190.23},
77: {"nome": "Irídio", "simbolo": "Ir", "massa_atomica": 192.22},
78: {"nome": "Platina", "simbolo": "Pt", "massa_atomica": 195.08},
79: {"nome": "Ouro", "simbolo": "Au", "massa_atomica": 196.97},
80: {"nome": "Mercúrio", "simbolo": "Hg", "massa_atomica": 200.59},
81: {"nome": "Tálio", "simbolo": "Tl", "massa_atomica": 204.38},
82: {"nome": "Chumbo", "simbolo": "Pb", "massa_atomica": 207.2},
83: {"nome": "Bismuto", "simbolo": "Bi", "massa_atomica": 208.98},
84: {"nome": "Polônio", "simbolo": "Po", "massa_atomica": 209},
85: {"nome": "Astato", "simbolo": "At", "massa_atomica": 210},
86: {"nome": "Radônio", "simbolo": "Rn", "massa_atomica": 222},
87: {"nome": "Frâncio", "simbolo": "Fr", "massa_atomica": 223},
88: {"nome": "Rádio", "simbolo": "Ra", "massa_atomica": 226},
89: {"nome": "Actínio", "simbolo": "Ac", "massa_atomica": 227},
90: {"nome": "Tório", "simbolo": "Th", "massa_atomica": 232.04},
91: {"nome": "Protactínio", "simbolo": "Pa", "massa_atomica": 231.04},
92: {"nome": "Urânio", "simbolo": "U", "massa_atomica": 238.03},
93: {"nome": "Neptúnio", "simbolo": "Np", "massa_atomica": 237},
94: {"nome": "Plutônio", "simbolo": "Pu", "massa_atomica": 244},
95: {"nome": "Amerício", "simbolo": "Am", "massa_atomica": 243},
96: {"nome": "Cúrio", "simbolo": "Cm", "massa_atomica": 247},
97: {"nome": "Berquélio", "simbolo": "Bk", "massa_atomica": 247},
98: {"nome": "Califórnio", "simbolo": "Cf", "massa_atomica": 251},
99: {"nome": "Einstênio", "simbolo": "Es", "massa_atomica": 252},
100: {"nome": "Férmio", "simbolo": "Fm", "massa_atomica": 257},
101: {"nome": "Mendelévio", "simbolo": "Md", "massa_atomica": 258},
102: {"nome": "Nobélio", "simbolo": "No", "massa_atomica": 259},
103: {"nome": "Laurêncio", "simbolo": "Lr", "massa_atomica": 262},
104: {"nome": "Rutherfórdio", "simbolo": "Rf", "massa_atomica": 267},
105: {"nome": "Dúbnio", "simbolo": "Db", "massa_atomica": 270},
106: {"nome": "Seabórgio", "simbolo": "Sg", "massa_atomica": 271},
107: {"nome": "Bóhrio", "simbolo": "Bh", "massa_atomica": 270},
108: {"nome": "Hássio", "simbolo": "Hs", "massa_atomica": 277},
109: {"nome": "Meitnério", "simbolo": "Mt", "massa_atomica": 278},
110: {"nome": "Darmstádio", "simbolo": "Ds", "massa_atomica": 281},
111: {"nome": "Roentgênio", "simbolo": "Rg", "massa_atomica": 282},
112: {"nome": "Copernício", "simbolo": "Cn", "massa_atomica": 285},
113: {"nome": "Nihônio", "simbolo": "Nh", "massa_atomica": 286},
114: {"nome": "Fleróvio", "simbolo": "Fl", "massa_atomica": 289},
115: {"nome": "Moscóvio", "simbolo": "Mc", "massa_atomica": 290},
116: {"nome": "Livermório", "simbolo": "Lv", "massa_atomica": 293},
117: {"nome": "Tenessino", "simbolo": "Ts", "massa_atomica": 294},
118: {"nome": "Oganessônio", "simbolo": "Og", "massa_atomica": 294},
}


# Função para remover acentos e normalizar strings
def remover_acentos(texto):
return ''.join(
c for c in unicodedata.normalize('NFD', texto)
if unicodedata.category(c) != 'Mn'
)

# Função que será chamada quando um elemento for selecionado no OptionMenu
def store_element(selected_element):
for key, value in tabela_periodica.items():
if value["simbolo"] == selected_element:
mensagem = (f"Número Atômico: {key}\n"
f"Elemento Selecionado: {value['nome']}\n"
f"Símbolo: {value['simbolo']}\n"
f"Massa Atômica: {value['massa_atomica']}")
resultado_texto.config(text=mensagem)
break

# Inicializando a janela Tkinter
root = Tk()
root.title("Tabela Periódica")
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Tabela Periódica")
titulo = Label(text="Tabela Periódica",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.1)

# Variável para armazenar o valor selecionado no dropdown
var = StringVar()

# Lista com os nomes dos elementos da tabela periódica, ordenada alfabeticamente
elementos_quimicos = sorted(
[tabela_periodica[key]['simbolo'] for key in tabela_periodica],
key=lambda x: remover_acentos(x)
)

# Criando o menu drop-down com a lista ordenada alfabeticamente
dropdown = OptionMenu(root, var, *elementos_quimicos, command=store_element)
var.set(elementos_quimicos[0]) # Definindo o primeiro elemento como o valor padrão

# Configurando as cores do botão e do menu
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold"))

# Campo para exibir o resultado da busca
resultado_texto = Label(root, text="", justify=LEFT)
resultado_texto.place(relx=0.25, rely=0.5, relwidth=0.45,relheight=0.35)

# Posicionando o drop-down na grid
dropdown.place(relx=0.25,rely=0.25,relwidth=0.55)

# Iniciando o loop principal do Tkinter
root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação