auf Python 3Hinzufügen zu einem Warenkorb, und nimmt das äquivalent aus dem Bestand
Hallo, ich habe einen Vorrat an Produkten (wie ein Wörterbuch. Wo jede Taste ist die Identifikationsnummer und jeder Wert ist ein Wörterbuch von Information). Das Programm erfasst eine Identifikationsnummer (Produkt gesucht) und die gewünschte Menge. Dann soll der Code die Produktinfo in einen leeren Warenkorb hinzufügen, bearbeiten Sie die Nummer auf dem Original abzüglich der eingegebenen Menge. und bearbeiten Sie den Betrag im Warenkorb auf die gewünschte Menge.
aber der Code hält die Menge des Produkts in der Lagerausgabe Null. Und die Menge des Produktes im Korb, um auch Null auszugeben.
über den Druckbefehl Ich denke, ich habe das Problem lokalisiert. irgendwo in der if-Anweisung unten.
aber es sieht so einfach aus Ich weiß nicht, wo ich falsch liege!
Vielen Dank im Voraus. die Lager und eine ‚ziemlich‘ Druckfunktion an der Spitze des Codes sind, um Ihnen zu helfen, die 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"])
Thank you so much! Ich hatte mich jetzt schon zwei Stunden lang geärgert. Stets Vertrauen in den Stackoverflow –