Estou tentando resolver esse exercício de substituir o nome da lista definindo a seguinte função:
def alterar(nomes):
print 'Qual nome vc gostaria de alterar?'
nome = raw_input()
nome in nomes
if(nome == True):
print 'Digite o substituto'
nomes.index(nome)
nomes[nomes.index(nome)] = raw_input()
if(nome == False):
print 'Nome nao encontrado.'
menu()
Sendo que o código completo fica desta maneira:
def listar(nomes):
print 'Listando nomes:'
for nome in nomes:
print nome
def cadastrar(nomes):
print 'Digite o nome'
nome = raw_input()
nomes.append(nome)
def remover(nomes):
print 'Qual nome você gostaria de remover?'
nome = raw_input()
nomes.remove(nome)
def alterar(nomes):
print 'Qual nome vc gostaria de alterar?'
nome = raw_input()
nome in nomes
if(nome == True):
print 'Digite o substituto'
nomes.index(nome)
nomes[nomes.index(nome)] = raw_input()
if(nome == False):
print 'Nome nao encontrado.'
menu()
def menu():
nomes = []
escolha= ''
while (escolha != '0'):
print 'Digite: 1 para cadastrar, 2 para listar, 3 para remover, 4 para alterar e 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()
Quando digito o número 4 no console do Python ele imprime a primeira parte da função "alterar" perguntando qual o nome o usuário gostaria de alterar, porém ao digitar e apertar enter, ele pula todo o resto da função, chamando o menu novamente. Por que isso acontece?
Não quis olha a resposta do exercício ainda pois queria tentar achar a solução sozinho. Perdoem caso o código esteja muito longe da solução final.