I made the following code:
def caixaAlta(texto):
return texto.upper()
def ultimosNomes(nomeInteiro):
lista = nomeInteiro.split(' ')
if lista[-1].lower() == 'junior' or lista[-1].lower()=='sobrinho' \
or lista[-1].lower()=='neto' or lista[-1].lower()=='filho':
return caixaAlta(lista[-2])+" "+caixaAlta(lista[-1])
else:
return caixaAlta(lista[-1])
def primeirosNomes(nomeInteiro):
lista = nomeInteiro.split(' ')
nome=''
if lista[-1].lower() == 'junior' or lista[-1].lower()=='sobrinho' \
or lista[-1].lower()=='neto' or lista[-1].lower()=='filho':
for i in range(len(lista)-2):
nome = nome + inicial(lista[i])
else:
for i in range(len(lista)-1):
nome = nome + inicial(lista[i])
return nome
def inicial(nome):
for i in nome:
if nome=='da' or nome=='do' or nome=='de' \
or nome=='das' or nome=='dos' or nome=='e':
nome=nome.replace(i,".d")
return nome.lower()+' '
else:
return nome[0].upper()
def referencia(nomeInteiro):
return ultimosNomes(nomeInteiro)+','+primeirosNomes(nomeInteiro)
print(referencia(input('Digite nome do autor: ')))
Your output will be as follows:
> Digite nome do autor: Joao Joca da Silva <- o nome eu digito
> SILVA,JJ.da <- isso que imprime
This way I did I create names and it prints the way I want, but how do I just use names from a txt file and print it in the same way?