1
resposta

Erro na função alterar(nomes)

Estou tentando executar o código abaixo mas nao é possível pois é exibido erro na função alterar(nomes). No console é exibido:

 File "app.py", line 22
    nomes[posicao] = nome_novo
    ^
IndentationError: unexpected indent

# -*- coding: UTF-8 -*-
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 'Digite qual nome deseja remover:'
    nome = raw_input()
    nomes.remove(nome)
def alterar(nomes):
    print 'Qual nome vc gostaria de alterar?'
    nome_a_alterar = raw_input()

    if(nome_a_alterar in nomes):
        posicao = nomes.index(nome_a_alterar)
        print 'Digite novo nome:'
        nome_novo = raw_input()
        nomes[posicao] = nome_novo
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()
1 resposta

Boa tarde Marina,

O problema que houve é que todas as linhas do método alterar() estão indentadas com espaço, menos a linha

nomes[posicao] = nome_novo

, onde teve o erro. Essa linha está indentada com tabs, mas a documentação do Pythonavisa que não é misturado misturar indentação com espaço e com tab.Para resolver, basta indentar tudo com espaço ou tudo com tab.

Ficou claro? Testa e me avisa se funcionou! :)