Problema com elif

1. Problema com elif

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/09/2014 - 11:38h

Bom dia a todos ! Estou estudando python e estava digitando um exemplo para poder fixar o assunto, o código abaixo :



#-*- coding: utf-8 -*-
class Contato:
codigo = None
nome = None
telefone = None

def __init__(self, novoCodigo, novoNome, novoTelefone):
self.codigo = novoCodigo
self.nome = novoNome
self.telefone = novoTelefone
contatos = []
op = 0

while op != 5:
print 'Escolha uma opção:'
print '1 : Visualizar contatos'
print '2 : Adicionar contato'
print '3 : Editar contato'
print '4 : Remover contato'
print '5 : Sair'

try:
op = int(raw_input())
except:
print 'Esolha uma opção de 1 a 5'
raw_input()
if op == 1:
for contato in contatos:
print 'Código: ', contato.codigo
print 'Nome: ', contato.nome
print 'Telefone: ', contato.telefone
print '\n'
elif op == 2:
print 'Código: '
codigo = raw_input()
for contato in contatos:
if contato.codigo == codigo:
print 'Esse código já existe'
break
print 'Nome: '
nome = raw_input()
print 'Telefone: '
telefone = raw_input()
#contatos.append(Contato(codigo, nome, telefone))
contatos.append(Contato)
elif op == 3:
print 'Código: '
codigo = raw_input()
for contato in contatos:
if contato.codigo == codigo:
print 'Novo código: '
contato.codigo = raw_input()
print 'Novo nome: '
contato.nome = raw_input()
print 'Novo telefone: '
contato.telefone = raw_input()
break
elif op == 4:
print 'Código: '
codigo = raw_input()
for contato in contatos:
if contato.codigo == codigo:
contatos.remove(contato)
print 'Contato removido!'
break



E o mesmo está dando erro na linha "elif op == 3:" ... mostra o seguinte erro :

File "agenda.py", line 46
elif op == 3:
^
SyntaxError: invalid syntax


Já pesquisei na net e não acho erro com relação ao elif .. o que poderia ser então ?

at. Claudio



  


2. Indentacao

Roberto Soares (3spreto)
roberto_espreto

(usa Slackware)

Enviado em 10/09/2014 - 14:46h

Velho,

Isso é erro de indentação:

http://pt.wikibooks.org/wiki/Python/Conceitos_b%C3%A1sicos/Indenta%C3%A7%C3%A3o

Recomendo usar alguma IDE de desenvolvimento (Sublime Text 2, Eclipse etc), assim ela mostra guias e você não se perde. O python é chato com indentação, se estiver algo errado, ele acusa erro mesmo.

Abs,


3. Re: Problema com elif

Joel Bispo dos Santos Neto
joelbispo

(usa Ubuntu)

Enviado em 18/09/2014 - 19:14h

roberto_espreto escreveu:

Velho,

Isso é erro de indentação:

http://pt.wikibooks.org/wiki/Python/Conceitos_b%C3%A1sicos/Indenta%C3%A7%C3%A3o

Recomendo usar alguma IDE de desenvolvimento (Sublime Text 2, Eclipse etc), assim ela mostra guias e você não se perde. O python é chato com indentação, se estiver algo errado, ele acusa erro mesmo.

Abs,



e aih resolveu o problema? se sim coloque como resolvido.


Em Python não há comandos de final de bloco. Veja, por exemplo, este script simples:

Arquivo: escrevendoCodigoPython/indentacao.py

# imprime os quadrados pares de 0 a 10000

for i in range(101):
# aqui estamos dentro do for
if not i%2:
# e aqui dentro do if

print i**2

# e aqui estamos fora dos dois blocos
print "Pronto."



O comando para iniciar um bloco sempre termina com dois-pontos, e é seguido de identação. Para terminar o bloco, simplesmente resuzimos a identação.


4. Apenas um fix

Roberto Soares (3spreto)
roberto_espreto

(usa Slackware)

Enviado em 01/11/2014 - 01:33h

O correto é iNdentação (com "n" no começo) e não identação. Indentação vem da palavra inglesa indentation. Apenas um vício linguístico. :)

http://www.oxforddictionaries.com/us/definition/american_english/indentation

Abs,






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts