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

[Projeto] Aplicação

nomes = ['Ana', 'Carlos', 'Pedro']

while True:
    print("\n", nomes)

    while True:    
        errado = input("\nDigite o nome da lista que está icorreto: ").capitalize()
        if errado in nomes:
            break
        else: 
            print(f"O nome {errado} não está na lista!")

    while True:   
        correto = input("\nDigite o nome substituto: ").capitalize()
        if correto in nomes:
            print(f"O nome {correto} já está na lista!")
        else: 
            break

    posicao = nomes.index(errado)

    nomes.insert(posicao, correto)
    nomes.remove(errado)

    print("\nLista atualizada: ", nomes)

    while True:
        try:
            reinicio = str(input("\nVocê quer reiniciar o programa? (s/n) ")).lower()
            while reinicio != "s" and reinicio != "n":
                print("Digite s/n")
                reinicio = str(input("\nVocê quer reiniciar o programa? (s/n) ")).lower()
            break

        except ValueError:
            print("Digite s/n")
        
    if reinicio == "s":
        continue

    elif reinicio == "n":
        break
1 resposta
solução!

Oi, Pedro.

Agradeço por compartilhar.

Muito bom o cuidado com validações usando while True, in e index, garantindo que o nome exista na lista antes da troca. Isso mostra uma boa preocupação com fluxo do programa e experiência de quem usa.

Você também pode usar enumerate pra trabalhar com posições de forma mais clara.


nomes = ['Ana', 'Carlos', 'Pedro']

for indice, nome in enumerate(nomes):
    print(indice, nome)

Esse codigo percorre a lista mostrando cada nome junto da sua posicao, o que ajuda a entender e ajustar elementos sem depender apenas do index.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abracos e bons estudos!