1
resposta

[Projeto] Alterando nomes

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()
1 resposta

Oi, Matheus! Como vai?

Obrigada por compartilhar seu código com a comunidade Alura.

Seu projeto tá muito bem estruturado! A separação das funções deixou o código mais legível e reutilizável. Gostei da validação usando isalpha(), isso ajuda bastante a evitar erros comuns na entrada de dados.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!