0
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: ')))
His exit will be the following:
> 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 use only names of a txt file and it print the same way?
The question is no longer how to read a text file in python line by line ? I question this because the question has a lot of code but it doesn’t seem at all to be related to your doubt.
– Isac
It is that the way I did I would have to ask in the program itself a name to abbreviate. What I am asking instead of :)
– Matheus Andrade