

Helisi-1984
Se o site o ajudou, ajude o site

pix
008-064-101-67
henrique liandro
da silva

ajude o site a continuar funcionado

Separar as strings de uma Frase ou Palavra - Python
composto1 = 'SnBrCl3'
composto2 = 'C6H12O6'
composto3 = 'C7H5N3O6'
def qsplit(s):
stack = [] #Inicializa a pilha de separação.
result = [] #Inicializa a lista de resultados.
index= 0 #Inicializa o índice indicando o caractere sendo iterado.
#Sub-rotina que joga os valore da pilha na lista de resultados e esvazia a pilha.
def pop():
result.append("".join(stack)) #Joga o valor da pilha na lista de resultados.
stack.clear() #Esvazia a pilha.
#Itera pelos caracteres da string s...
while index < len(s):
#...verifica se o caractere é letra maiúscula...
if (val:= s[index]).isupper():
if len(stack)!=0: pop() #...se a pilha não estiver vazia chama pop()
stack.append(val) #...adiciona o caractere a pilha.
#...verifica se o caractere é letra minúscula...
elif val.islower():
stack.append(val) #...adiciona o caractere a pilha.
pop() #... chama a função pop().
#...verifica se o caractere é um digito decimal...
elif val.isdecimal():
if len(stack) !=0 and not stack[-1].isdecimal(): pop() #...se a pilha não estiver vazia chama pop()
stack.append(val) #...adiciona o caractere a pilha.
else:
print(f'Caractere {val} inválido.') #...caso o caractere não enquadre em nenhuma opção.
index += 1 #incrementa o índice do caractere sendo iterado.
else:
pop() #ao deixar o laço de iteração chama pop().
return result
print(qsplit(composto1)) #['Sn', 'Br', 'Cl', '3']
print(qsplit(composto2)) #['C', '6', 'H', '12', 'O', '6']
print(qsplit(composto3)) #['C', '7', 'H', '5', 'N', '3', 'O', '6']

"Depoimentos são uma ótima forma de apresentar um feedback positivo que você recebeu. Adicione o seu."
Laura Castro
"Depoimentos são uma ótima forma de apresentar um feedback positivo que você recebeu. Adicione o seu."
Ana Serra
"Depoimentos são uma ótima forma de apresentar um feedback positivo que você recebeu. Adicione o seu."
Bruno Costa
"Depoimentos são uma ótima forma de apresentar um feedback positivo que você recebeu. Adicione o seu."
Cláudia Silva