Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe Magalhães

erro em programa python

Recommended Posts

Boa tarde galera,

 

estou aprendendo python e estou tentando desenvolver inicialmente um pequeno sistema de cadastro e consulta de produtos. os dados dos produtos sao armazenados num bd mysql. o código estava funcionando normalmente até eu alterar o modo de solicitação da entrada de opcao desejada pelo usuário. o erro apresentado é:

 

Traceback (most recent call last):

File "/home/felipe/Desktop/PYTHON/SCV/scv2.py", line 7, in <module>

menu(opc)

File "/home/felipe/Desktop/PYTHON/SCV/funcoes.py", line 27, in menu

funcoes.cadastro(codigo,produto,preco)

NameError: global name 'funcoes' is not defined

 

o código esta dividido em 2 scripts. um que contém a base e o outro, algumas funcoes que sao chamadas:

 

import funcoes

print("================|")

print("1 - Consultar |\n2 - Cadastrar |\n3 - Sair |\n================|")

opc = raw_input("Digite a opcao desejada: ")

while opc <> '3':

from funcoes import menu

menu(opc)

exit()

 

e

 

def cadastro (codigo,produto,preco):

import MySQLdb

db=MySQLdb.connect(host="localhost", user="root", passwd="sua_senha", db="bd_scv")

cursor = db.cursor()

cursor.execute("INSERT INTO tab_produtos (cod,prod,valor) VALUES (%s, %s, %s)",(codigo, produto, preco))

print("Produto cadastrado!")

 

def consulta ():

import MySQLdb

db=MySQLdb.connect(host="localhost", user="root", passwd="sua_senha", db="bd_scv")

cursor = db.cursor()

cursor.execute('select * from tab_produtos')

result=cursor.fetchall()

for record in result:

print record[0], '-->', record[1], '-->',record[2]

 

def menu(opc):

if opc == '1':

funcoes.consulta()

elif opc == '2':

codigo = raw_input("Codigo do produto: ")

produto = raw_input("Nome do produto: ")

preco = raw_input("Preco: ")

funcoes.cadastro(codigo,produto,preco)

print("================|")

print("1 - Consultar |\n2 - Cadastrar |\n3 - Sair |\n================|")

for opc in range(2,10):

print("Opcao invalida. Digite novamente.")

print("================|")

print("1 - Consultar |\n2 - Cadastrar |\n3 - Sair |\n================|")

 

 

alguem pode me dar uma ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola felipe, tudo bem?

 

Bem vindo ao forum =)

 

bem, tente usar

 

funcoes. menu(opc)

bem, e ja que você parece ser novo, =), usa as tags "code", principalmente em Python, ja que sai a identação melhor =)

 

valeu =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola felipe, tudo bem?

 

Bem vindo ao forum =)

 

bem, tente usar

 

funcoes. menu(opc)

bem, e ja que você parece ser novo, =), usa as tags "code", principalmente em Python, ja que sai a identação melhor =)

 

valeu =)

Opa... valeu pelas boas vindas!

 

Cara, primeiramente eu tinha tentado usar o funcoes.menu(opc) já que no inicio do script eu importei o arquivo com as funções mas mesmo assim nao funcionou e por isso, eu "rechamei" a função. O erro tinha sido o mesmo.

Mais alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, eu faria assim

 

 

import funcoes

print("================|")
print("1 - Consultar |\n2 - Cadastrar |\n3 - Sair |\n================|")
opc = raw_input("Digite a opcao desejada: ")
while opc <> '3':
	funcoes.menu(opc)
exit()

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.