Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida na função .split

Pessoal boa noite eu estou usando o .split() para separar as strings, mas eu gostaria de pegar somente o ultimo conteudo da string, por exemplo, quero pegar o ultimo armazenamento independente da quantidade de nomes que eu digite, como faço isso. No meu exemplo abaixo eu defini x e y, mas se eu digitar tipo joao da silva sauro, ele da erro porque defini somente 2 lugares. Como faço para pegar o ultimo armazenamento independente da quantidade de nomes que eu digitar. Obrigado.

#funcao para contar letras do ultimo sobrenome
def fatiar(frase):
    x,y = frase.split()
    return y

#funcao para tirar os espaços entre as palavras
def conta_letras(nome):
    teste =  nome.replace(' ', '')
    teste2 = len(teste)
    return teste2


frase = raw_input("Digite o nome e o seu ultimo sobrenome:  ")

teste = fatiar(frase)
teste2 = conta_letras(teste)
print ("Seu sobrenome: %s" % (teste))
print ("O total de letras do seu sobrenome: %s" %(teste2) + " letras")
1 resposta
solução!

Oi, Julian! Tudo bem! Sua pergunta é muito legal, porque o Python tem um jeito especial para lidarmos com isso, que na verdade é apenas uma característica intrigante da indexação de listas. Você já deve ter visto que podemos acessar um valor específico de uma lista dessa forma:

>>> nome = 'Joao da Silva Sauro'
>>> partes_do_nome = nome.split()
>>> partes_do_nome[0]
'Joao'
>>> partes_do_nome[1]
'da'
...

E tudo certo! Tudo bem... Mas se não sabemos o tamanho da lista, como podemos pegar o último elemento? O Python nos permite fazer isso usando índices negativos, dessa forma:

>>> nome = 'Joao da Silva Sauro'
>>> partes_do_nome = nome.split()
>>> partes_do_nome[-1]
'Sauro'
>>> partes_do_nome[-2]
'Silva'
>>> partes_do_nome[-4]
'Joao'

E assim a gente consegue resolver isso facilmente! Legal, né? Espero que tenha ajudado, abraços e bons estudos!