sur python 3Ajoutant à un panier, et en prenant l'équivalent du stock
Salut, j'ai un stock de produits (comme un dictionnaire. Où chaque clé est le numéro d'identification et chaque valeur est un dictionnaire de information). Le programme prend un numéro d'identification (produit désiré) et le montant désiré. Ensuite, le code est censé ajouter les informations sur le produit dans un panier vide, modifier le nombre en stock à l'original moins le montant entré. et éditez le montant dans le panier au montant désiré.
Cependant, le code continue de rendre nulle la quantité de produit dans la sortie de stock. Et la quantité de produit dans le panier pour sortir zéro aussi.
via la commande d'impression Je pense avoir localisé le problème. quelque part dans la déclaration if ci-dessous.
mais il semble si simple Je ne sais pas où je vais mal!
Merci beaucoup d'avance. le stock et une fonction d'impression « jolie » sont en haut du code, pour vous aider à visualiser la situation
stock = {
'10005' : {
'name' : 'Conference Pears Loose',
'price' : 2.00,
'unit' : 'kg',
'promotion' : None,
'group' : None,
'amount' : 1.550
},
'10013' : {
'name' : 'Emmental Slices 250G',
'price' : 1.75,
'unit' : 'pieces',
'promotion' : 'get2pay1',
'group' : None,
'amount' : 9
},
'10015' : {
'name' : 'Diced Beef 400G',
'price' : 4.50,
'unit' : 'pieces',
'promotion': 'get4pay3',
'group' : 4,
'amount' : 14
}}
def listitems(dct):
"""
inputs dictionary of stock and prints a lovely table showing all the items with info
"""
print("\n")
print(" {0:^5} | {1:<38} | {2:^7} | {3:^11} ".format("Ident", "Product", "Price", "Amount"))
print("-" *7 + "+" + "-" * 40 + "+" + "-" * 9 + "+" + "-"*12 + "+")
for key in sorted(dct):
print(" {:^5} | {name:<38} | {price:>5.2f} £ | {amount:>} {unit:<14}".format(key, **dct[key]))
return
#main code of function
basket = dict()
quantity = input("Number of items? ")
#amount = 6
ident = input("Indentification number? ")
#ident = "10011"
listitems(stock)
try:
quantity = int(quantity)
except ValueError:
try:
quantity = float(quantity)
except ValueError:
print("You have entered a invalid amount")
try:
ident = str(ident)
except ValueError:
print("you have entered a invalid indent.")
#print("amount is ", quantity)
#print("amount in stock ", stock[ident]["amount"])
if quantity > 0:
if quantity < stock[ident]["amount"]:
basket[ident] = stock[ident] #adding the product tp the basket.
basket[ident]["amount"] = quantity
stock[ident]["amount"] = stock[ident]["amount"] - quantity
listitems(stock)
listitems(basket)
print("amount is ", quantity)
print("amount in stock ", stock[ident]["amount"])
print("amount in basket", basket[ident]["amount"])
Merci beaucoup! m'avait dérangé pendant deux heures maintenant. Ayez toujours foi en stackoverflow –