Difficulty with first code

2

This is my first code that does not involve my course classes. My goal is to put together a code that asks that any chemical symbol be inserted and this will tell your group. Very simple concept, but I'm having difficulties in it.

elemento = str((input("Insira um elemento químico: ")))
if len(elemento) !=2: #Verifica se o elemento está em símbolo.
    input("Insira somente a sigla do elemento: ")

else:
    alcalinos = str(('Li', 'Na', 'K', 'Rb', 'Cs', 'Fr'))
    alcalinos_terrosos = str(('Be', 'Mg', 'Ca', 'Sr', 'Ba', 'Ra'))
    metais_de_transicao = str(('Sc', 'Y', 'Ti', 'Zr', 'Hf', 'Rf', 'V', 'Nb', 'Ta', 'Db', 'Cr', 'Mo', 'W', 'Sg', 'Mn', 'Tc', 'Re', 'Bh', 'Fe', 'Ru', 'Os', 'Hs', 'Co', 'Rh', 'Ir', 'Mt', 'Ni', 'Pd', 'Pt', 'Ds', 'Cu', 'Ag', 'Au', 'Rg', 'Zn', 'Cd', 'Hg', 'Cn'))

    if elemento == (alcalinos):
        print("Esse elemento é um Alcalino.")
    if elemento == (alcalinos_terrosos):
        print("Esse elemento é um Alcalino Terroso.")
    if elemento == (metais_de_transicao):
        print("Esse elemento é um metal de Transição.")
    elif elemento != ('Ac', 'Am', 'Sb', 'Ar', 'As', 'At', 'Ba', 'Bk', 
        'Be', 'Bi', 'Bh', 'B', 'Br', 'Cd', 'Cs', 'Ca', 'Cf', 'C', 'Ce', 
        'Cl', 'Cr', 'Co', 'Cu', 'Cm', 'Ds', 'Db', 'Dy', 'Es', 'Er', 'Eu', 'Fm',
        'F', 'Fr', 'Gd', 'Ga', 'Ge', 'Au', 'Hf', 'Hs', 'He', 'Ho', 'H', 'In',
        'I', 'Ir', 'Fe', 'Kr', 'La', 'Lr', 'Pb', 'Li', 'Lu', 'Mg', 'Mn',
        'Mt', 'Md', 'Hg', 'Mo', 'Nd', 'Ne', 'Np', 'Ni', 'Nb', 'N', 'No',
        'Os', 'O', 'Pd', 'P', 'Pt', 'Pu', 'Po', 'K', 'Pr', 'Pm', 'Pa', 'Ra',
        'Rn', 'Re', 'Rh', 'Rg', 'Rb', 'Ru', 'Rf', 'Sm', 'Sc', 'Sg', 'Se',
        'Si', 'Ag', 'Na', 'Sr', 'S', 'Ta', 'Tc', 'Te', 'Tb', 'Tl', 'Th', 
        'Tm', 'Sn', 'Ti', 'W', 'Uub', 'Uuh', 'Uuo', 'Uup', 'Uuq', 'Uus', 
        'Uut', 'U', 'V', 'Xe', 'Yb', 'Y', 'Zn', 'Zr'): 
            #Verifica se o símbolo é um elemento.Minha dificuldade é aqui.
        print("Elemento não existe.")
    
asked by anonymous 13.11.2018 / 23:22

3 answers

2

You should test using the in operator to see if an object is part of a sequence.

If you want to know if the object is not in the sequence, use not in .

For example:

if elemento in alcalinos:
    print("Esse elemento é um Alcalino.")
if elemento in alcalinos_terrosos:
    print("Esse elemento é um Alcalino Terroso.")
if elemento in metais_de_transicao:
    print("Esse elemento é um metal de Transição.")
elif elemento not in ('Ac', 'Am', 'Sb', 'Ar', ...):

It will check whether elemento is between these.

    
14.11.2018 / 01:04
0
elemento = str((input("Insira um elemento químico: ")))
alcalinos = ('Li', 'Na', 'K', 'Rb', 'Cs', 'Fr')
alcalinos_terrosos = ('Be', 'Mg', 'Ca', 'Sr', 'Ba', 'Ra')
metais_de_transicao = ('Sc', 'Y', 'Ti', 'Zr', 'Hf', 'Rf', 'V', 'Nb', 'Ta', 'Db', 'Cr', 'Mo', 'W', 'Sg', 'Mn', 'Tc', 'Re', 'Bh', 'Fe', 'Ru', 'Os', 'Hs', 'Co', 'Rh', 'Ir', 'Mt', 'Ni', 'Pd', 'Pt', 'Ds', 'Cu', 'Ag', 'Au', 'Rg', 'Zn', 'Cd', 'Hg', 'Cn')

if len(elemento) !=2:
        input("Insira somente a sigla do elemento: ")

elif elemento not in('Sc', 'Y', 'Ti', 'Zr', 'Hf', 'Rf', 'V', 'Nb', 'Ta', 'Db', 'Cr', 'Mo', 'W', 'Sg', 'Mn', 'Tc', 'Re', 'Bh', 'Fe', 'Ru', 'Os', 'Be', 'Mg', 'Ca', 'Sr', 'Ba', 'Ra', 'Li', 'Na', 'K', 'Rb', 'Cs', 'Fr'):
            print("Elemento não existe.")

else:
        if elemento in alcalinos:
                print("Esse elemento é um Alcalino.")
        if elemento in alcalinos_terrosos:
                print("Esse elemento é um Alcalino Terroso.")
        if elemento in metais_de_transicao:
                print("Esse elemento é um metal de Transição.")

So it works the way I thought of it.

    
14.11.2018 / 01:12
0
elementos = ('ac', 'am', 'sb', 'ar', 'as', 'at', 'ba', 'bk',
    'be', 'bi', 'bh', 'b', 'br', 'cd', 'cs', 'ca', 'cf', 'c', 'ce',
    'cl', 'cr', 'co', 'cu', 'cm', 'ds', 'db', 'dy', 'es', 'er', 'eu', 'fm',
    'f', 'fr', 'gd', 'ga', 'ge', 'au', 'hf', 'hs', 'he', 'ho', 'h', 'in',
    'i', 'ir', 'fe', 'kr', 'la', 'lr', 'pb', 'li', 'lu', 'mg', 'mn',
    'mt', 'md', 'hg', 'mo', 'nd', 'ne', 'np', 'ni', 'nb', 'n', 'no',
    'os', 'o', 'pd', 'p', 'pt', 'pu', 'po', 'k', 'pr', 'pm', 'pa', 'ra',
    'rn', 're', 'rh', 'rg', 'rb', 'ru', 'rf', 'sm', 'sc', 'sg', 'se',
    'si', 'ag', 'na', 'sr', 's', 'ta', 'tc', 'te', 'tb', 'tl', 'th',
    'tm', 'sn', 'ti', 'w', 'uub', 'uuh', 'uuo', 'uup', 'uuq', 'uus',
    'uut', 'u', 'v', 'xe', 'yb', 'y', 'zn', 'zr')

alcalinos = ('li', 'na', 'k', 'rb', 'cs', 'fr')
alcalinos_terrosos = ('be', 'mg', 'ca', 'sr', 'ba', 'ra')
metais_de_transicao = ('sc', 'y', 'ti', 'zr', 'hf', 'rf', 'v', 'nb', 'ta', 'db', 'cr', 'mo', 'w', 'sg', 'mn', 'tc',
                       're', 'bh', 'fe', 'ru', 'os', 'hs', 'co', 'rh', 'ir', 'mt', 'ni', 'pd', 'pt', 'ds', 'cu',
                       'ag', 'au', 'rg', 'zn', 'cd', 'hg', 'cn')

while True:
    elemento = str((input("Insira um elemento químico: ")))

    if len(elemento) !=2: #Verifica se o elemento está em símbolo.
       print("Insira somente a sigla do elemento!")
       continue
    else:
       break

if elemento.lower() in alcalinos:
    print("Esse elemento é um Alcalino.")
elif elemento.lower() in alcalinos_terrosos:
    print("Esse elemento é um Alcalino Terroso.")
elif elemento.lower() in metais_de_transicao:
    print("Esse elemento é um metal de Transição.")

elif elemento.lower() not in elementos:
    print("Elemento não existe!")
    
14.11.2018 / 03:22