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

Python 2 - If e Else

No código a seguir, o compilador do python acusa um erro de sintaxe no else da ultima função. Alguém pode me ajudar?

# python/app.py
# -*- coding: UTF-8 -*- 

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

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

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

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

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

        if(escolha == '5'):
            procurar(nomes)

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

def listar(nomes):
    print 'Nomes armazenados:'
    for nome in nomes:
        print nome

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

def alterar(nomes):
    print 'Qual nome deseja alterar?'
    nome = raw_input()

    if(nome in nomes):
        nome_posicao = nomes.index(nome)
        print 'Digite o nome alterado:'
        nome_alterado = raw_input()
        nomes[nome_posicao] = nome_alterado

def procurar(nomes):
    print 'Digite nome a procurar:'
    nome_a_procurar = raw_input()

    if(nome_a_procurar in nomes):
        print 'Este nome está na lista!'
    else:
        print 'Este nome não está na lista'

menu()

Edit

Aviso de erro no console:

C:\Python27\Python>python app.py
  File "app.py", line 57
    else:
       ^
SyntaxError: invalid syntax
7 respostas

Vou chamar um guru de python pra te ajudar! Aproveita pra compartilhar o erro que apareceu no seu console pra gente poder te ajudar.

Obrigado, Marco, já editei o tópico com o aviso de erro!

Provavelmente o que está acontecendo é uma mistura de tabulação, espaços na indentação usada na função, o que faz com o que o python interprete os comando de outra forma.

Tentou reescrever a função ou editar o código em outro editor?

Na verdade, tentei sim, no Sublime e no Brackets, mas em ambos o erro permaneceu mesmo quando reescrevi a função.

solução!

Só pra desencargo de consciência, tenta separar o dois pontos do else?

else  :

Curioso Nelson, o mesmo código aqui no PyCharm funcionou, fato que para mim reforça a ideia de que é problema de indentação.

Concordo com o Thiago. Confere a identação toda, se por acaso você está usando espaços em um lugar e tabs em outro. Isso pode dar ruim!