I am new to python and I don't know why I am getting this error message, but this is the code I am working on:
txt_historico = "historico.txt"
HistoricoVendas = []
if exists(txt_historico):
with open(txt_historico, "r") as arquivo_historico:
HistoricoVendas = []
def imprimeHistorico()
print()
if len[HistoricoVendas] > 0:
print(HistoricoVendas)
else:
print("Não há histórico de vendas por enquanto")
elif ans=="6":
HistoricoVendas()
I only put the parts where this specific mistake happens, but if it helps I can post the whole code no problem.
Is the error in the way I am naming that HistoricoVendas ?
CodePudding user response:
As Muhammad hassan says in the comment, you can't do this: len[something]
. It should be like this: len(something)
.
Also you can't separate elif
and if
statements.
# You can do whatever you want before going into the if statement
txt_historico = "historico.txt"
HistoricoVendas = []
if exists(txt_historico):
with open(txt_historico, "r") as arquivo_historico:
HistoricoVendas = []
if exists(txt_historico):
with open(txt_historico, "r") as arquivo_historico:
HistoricoVendas = []
# You can't insert code here
elif ans=="6":
HistoricoVendas()
CodePudding user response:
The error I am getting is line 133 HistoricoVendas(), 'list' object is not callable
import time
from os.path import exists
from json import loads
print('''Olá !
Este programa foi desenvolvido como avaliação para a disciplina Programação Básica de Computadores, do curso de Engenharia Civil da UFES''')
print()
print("=-="*20)
txt_estoque = "estoque.txt"
EstoqueLivros = []
if exists(txt_estoque):
with open(txt_estoque, "r") as arquivo_estoque:
EstoqueLivros = [ loads(livro.strip("\n").replace("'","\"")) for livro in arquivo_estoque.readlines() ]
EstoqueLivros = EstoqueLivros[0]
txt_saldo = "saldo.txt"
Saldo = 0
if exists(txt_saldo):
with open(txt_saldo, "r") as arquivo_saldo:
Saldo = float(arquivo_saldo.readline())
txt_historico = "historico.txt"
HistoricoVendas = []
if exists(txt_historico):
with open(txt_historico, "r") as arquivo_historico:
HistoricoVendas = []
def cadastraLivro(titulo, isbn, valor, quantidade_estoque):
for livro in EstoqueLivros:
if isbn == livro["ISBN"]:
livro["QuantidadeEstoque"] = quantidade_estoque
return
novo_livro = {}
novo_livro["Titulo"] = titulo
novo_livro["ISBN"] = isbn
novo_livro["Valor"] = valor
novo_livro["QuantidadeEstoque"] = quantidade_estoque
EstoqueLivros.append(novo_livro)
print('\nLivro cadastrado no sistema\n')
def consultaEstoqueTitulo(titulo):
for livro in EstoqueLivros:
if titulo == livro["Titulo"]:
print()
print(r"Livro encontrado:")
print()
print(f"Titulo: {livro['Titulo']}\nISBN: {livro['ISBN']}\nValor: {livro['Valor']}\nQuantidade em Estoque: {livro['QuantidadeEstoque']}")
return
print(f"{titulo} não foi encontrado.")
def consultaEstoqueISBN(isbn):
for livro in EstoqueLivros:
if isbn == livro["ISBN"]:
print()
print(r"Livro encontrado:")
print()
print(f"Titulo: {livro['Titulo']}\nISBN: {livro['ISBN']}\nValor: {livro['Valor']}\nQuantidade em Estoque: {livro['QuantidadeEstoque']}")
return
print()
print(f"O livro de ISBN {isbn} não foi encontrado.")
def venderLivro(isbn, quantidade):
total = 0.0
for livro in EstoqueLivros:
if isbn == livro["ISBN"]:
if livro["QuantidadeEstoque"] - quantidade >= 0:
livro["QuantidadeEstoque"] -= quantidade
total = livro["Valor"] * quantidade
print()
print(f"A quantidade de vendas do livro de ISBN {isbn} é de {quantidade} livros.")
else:
print()
print(f"O livro de IBSN {isbn} está em falta no estoque.")
return total
print()
print(f"Livro não encontrado.")
def consultaSaldo():
print()
print(f"Seu saldo é: R${Saldo}")
def imprimeHistorico():
print()
if len(HistoricoVendas) > 0:
print(HistoricoVendas)
else:
print("Não há histórico de vendas por enquanto")
def salvarDados():
with open(txt_estoque, "w") as arquivo_estoque:
for livro in EstoqueLivros:
arquivo_estoque.write(f"{livro}\n")
with open(txt_saldo, "w") as arquivo_saldo:
arquivo_saldo.write(f"{Saldo}")
ans=True
while ans:
print ("""
1) Cadastrar livro
2) Consulta estoque (busca por título)
3) Consulta estoque (busca por ISBN)
4) Vender um livro
5) Consultar saldo da loja
6) Mostrar histórico de vendas
7) Salvar dados
9) Sair
""")
ans=(input("Escolha a opção desejada "))
if ans=="1":
titulo = input("\nDigite o título do livro: ")
isbn = int(input("Digite o ISBN do livro: "))
valor = float(input("Digite o valor do livro: "))
qnt_estoque = int(input("Digite a quantidade de livros: "))
cadastraLivro(titulo, valor, isbn, qnt_estoque)
elif ans=="2":
titulo = input("Digite o título do livro para consulta: ")
consultaEstoqueTitulo(titulo)
elif ans=="3":
isbn = int(input("\nDigite o ISBN do livro para consulta: "))
consultaEstoqueISBN(isbn)
elif ans=="4":
isbn = int(input("\nDigite o ISBN do livro para a venda: "))
quantidade = int(input("Digite a quantidade de livros para a venda: "))
Saldo = venderLivro(isbn, quantidade)
elif ans=="5":
consultaSaldo()
elif ans=="6":
HistoricoVendas()
elif ans=="7":
salvarDados()
elif ans=="9":
print("\n Até logo!")
break
elif ans !="":
print("\n Escolha uma opção válida")
time.sleep(1)