6
respostas

Erro ao importar arquivo de acordo com a Aula 6

Ao importar o arquivo app, estou com o seguinte problema :

>>> from app import*
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "app.py", line 14
    while(escolha != '0')
6 respostas

Olá, Guilherme, tudo bem? Faltou o dois pontos no final do if. Seria

while (escolha != '0'):

Moisés , infelizmente esse não é o erro pois no sublime ele tem os : ,acompanhe o código no sublime.

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

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

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

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

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

O erro , ainda persiste :(

Eu vejo que você está fazendo isso a partir do IDLE, tenta digitar somente esse código para importar a app.py

import app

e chama, por exemplo, a função menu():

app.menu()

Continua apresentando erros :(

SyntaxError: invalid syntax
>>> app.menu()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'app' is not defined
>>> import app
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "app.py", line 14
    while(escolha != '0')
                        ^
SyntaxError: invalid syntax
>>> app.menu()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'app' is not defined
>>>

Guilherme, verifique se na linha 1 do arquivo está assim:

# -*- coding: utf-8 -*-

Guilherme, rodei aqui e seu código funcionou. Segui esses passos:

  1. editei o arquivo abaixo com o nome "app.py"
def cadastrar(nomes):
    print 'Digite: o nome:'
    nome = raw_input()
    nomes.append(nome)

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

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

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

def listar(nomes):
    print 'Listando nomes:'
    for nome in nomes:
        print nome
  1. no prompt entrei no diretório onde o arquivo "app.py" está.
  2. chamei o Python 2
  3. importei "app.py" assim:
>>> import app
  1. chamei a função:
>>> app.menu()
  1. Obtive os seguintes resultados
Digite: 1 para cadastrar, 2 para listar, 0 para terminar
1
Digite: o nome:
Rodrigo
Digite: 1 para cadastrar, 2 para listar, 0 para terminar
2
Listando nomes:
Rodrigo
Digite: 1 para cadastrar, 2 para listar, 0 para terminar
0
>>>