Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

a função alterar ou 4 fecha o programa igual o 0, não sei por que isso está acontecendo.

# -*- coding: UTF-8 -*-

def cadastrar(nomes):
    print ' Digite o nome'
    nome = raw_input()
    nomes.append(nome)

def listar(nomes):
    print ' Listando nomes:'
    for nome in nomes:
        print nome


def remover(nomes):
    print ' Qual nome gostaria de remover?'
    nome = raw_input()
    nomes.remove(nome)

def alterar(nomes):
    print ' Qual nome gostaria de alterar?'
    nome_a_alterar = raw_input()

    if(nome_a_alterar in nomes):
        posicao = nomes.index(nome_a_alterar)
        print 'digite o novo nome'
        novo_nome = raw_input()
        nome[posicao] = novo_nome    

def menu():
    nomes = []
    escolha = ''
    while(escolha != '0'):
        print ' Digite 1 para cadastrar, 2 para listar nomes, 3 para remover, 4 para alterar, 0 para terminar'
        escolha = raw_input()

        if(escolha == '1'): 
            cadastrar(nomes)

        if(escolha == '2'):
            listar(nomes)

        if(escolha == '3'):
            remover(nomes)

        if(escolha == '4'):
            alterar(nomes)
menu()
4 respostas

Oi Adam, insira poderia enviar o seu código

Dessa maneira

Assim vai ficar mais fácil para lermos e conseguirmos te ajudar a resolver o seu problema, para inserir essa formatação basta clicar em inserir código sobre o formulário da pergunta e colar o código conforme o indicado.

solução!

Adam, o programa fechava logo quando você colocava o novo nome, certo? Isso é porque tem um errinho na linha que atribui o novo nome à posição da lista do antigo nome. Na linha 27, a última linha da função alterar, você digitou nome em vez de nomes. Então você tem que mudar de:

nome[posicao] = novo_nome

para:

nomes[posicao] = novo_nome

Assim tudo deve funcionar direitinho. Abraços e bons estudos!

Boa Yan!

Beleza agora Adam?

Obrigado pelas respostas , agora funcionou