participantes = ['Ana', 'João', 'Pedro']
def obter_nome_incorreto():
"""
Obtem o nome incorreto da lista para ser alterado.
Verifica se o nome está na lista.
Retorna None se o nome estiver vazio ou se for digitado numeros ou simbolos.
"""
while True:
nome_incorreto = input('Digite o nome incorreto: ')
if not nome_incorreto:
print('Erro! Nome vazio.')
continue
elif not nome_incorreto.isalpha():
print('Erro! Digite apenas nomes.')
continue
return nome_incorreto.title()
def obter_nome_correto():
"""
Obtem o nome correto para ser inserido na lista.
Retorna um nome formatado (primeira letra maiúscula), desde que não esteja vazio
e contenha apenas letras.
"""
while True:
nome_correto = input('Digite o nome correto: ')
if not nome_correto:
print('Erro! Nome vazio.')
continue
elif not nome_correto.isalpha():
print('Erro! Digite apenas nomes.')
continue
return nome_correto.title()
def alterar_nome(participantes):
"""
Realiza a alteração do nome incorreto pelo nome correto digitado pelo usuário.
Se o nome incorreto digitado não for encontrado: Retorna erro e pede que seja digitado novamente.
Faz a alteração do nome antigo pelo novo nome digitado, e imprime a lista atualizada.
"""
while True:
nome_antigo = obter_nome_incorreto()
if nome_antigo not in participantes:
print(f'Erro! O nome {nome_antigo} não foi encontrado na lista de participantes.')
continue
else:
nome_novo = obter_nome_correto()
indice = participantes.index(nome_antigo)
participantes[indice] = nome_novo
print(f'Lista atualizada: {participantes}')
break
def main():
participantes = ['Ana', 'João', 'Pedro']
while True:
alterar_nome(participantes)
continuar = input('Deseja corrigir outro nome? (s/n): ').strip().lower()
if continuar != 's':
print('Encerrando o programa. Lista final de participantes: ')
print(participantes)
break
if __name__ == '__main__':
main()