2017-04-06 1 views
0

Also arbeite ich an einem Code, mit dem ein Benutzer den GTIN-8-Code eines Produkts eingeben, geben Sie den gewünschten Betrag ein und gibt dann eine Quittung. Wenn ich jedoch zu dem letzten Teil des Codes komme, in dem ich versuche, die Menge des Produkts und dessen Preis zu multiplizieren, bekomme ich die Fehlermeldung 'Kann die Sequenz nicht durch einen Nicht-Int-Typ' str'-Fehler multiplizieren. Hier ist ein Teil des Codes:Python - 'Kann Sequenz nicht durch Nicht-Int des Typs' str '' Fehler multiplizieren?

while IfFinished != "Yes": 
    ProductsWanted=input("Please enter the GTIN-8 Code of the product: ") 
    AmountOfProducts=input("How many do you want? ") 

    with open("Productsfile.txt") as f: 
     for line in f: 
       if ProductsWanted in line: 
        Receipt=open("ReceiptFile.txt","a") 
        Receipt.write("%r, %r, \n" % (line, AmountOfProducts)) 
        Receipt.close() 

    if ProductsWanted not in ["23456945","12376988","76543111","92674769","43125999"]: 
     print("Product not found") 

    else: 
     print("Product found") 

    IfFinished=input("Are you done? If so, type 'Yes' ") 
    if IfFinished == "Yes": 
     print("Thank you for shopping with us!") 
    else: 
     print("Please continue") 

Receipt=open("ReceiptFile.txt","r") 
print(Receipt.read()) 
Receipt.close() 

with open("ReceiptFile.txt","r") as file: 
    for line in file: 
     currentline=line.split(",") 
quantity=currentline[3] 
ItemPrice=currentline[2] 
Totalprice=quantity*ItemPrice 
price="0" 
Total=price + Totalprice 

print(Total) 
+0

Bitte posten Sie den genauen Fehler, den Sie von Python wörtlich bekommen. –

+0

Sie nehmen an, dass 'quantity' und' ItemPrice' ganze Zahlen sind, aber nicht. – Junuxx

+0

Überprüfen Sie "Menge" und "Artikelpreis"; Wie sehen sie aus, welche Arten sind sie? – Cleb

Antwort

1

Hier wird, wenn Sie die Werte aus der Datei erhalten, sie sind von einem String-Typ:

quantity=currentline[3] 
ItemPrice=currentline[2] 

Sie müssen sie konvertieren, bevor die Multiplikation in int, Zum Beispiel:

quantity=int(currentline[3]) 
+0

Wie in [Antwort] angegeben, vermeiden Sie bitte die Beantwortung unklarer, übermäßig breiter, typografischer, meinungsbezogener, nicht reproduzierbarer oder doppelter Fragen. "Write-my-code" -Anfragen und "Low-Efficiency" -Hausaufgaben-Fragen sind off-topic für [so] und eher für professionelle Coding/Tutoring-Dienste geeignet. Gute Fragen halten sich an [fragen], schließen ein [mcve], haben Forschungsaufwand und haben das Potenzial, zukünftigen Besuchern nützlich zu sein. Die Beantwortung unangemessener Fragen schadet der Website, da sie die Navigation erschwert und weitere Fragen anspricht, die andere Nutzer, die ihre Zeit und ihr Fachwissen freiwillig zur Verfügung stellen, vertreiben können. – TigerhawkT3

Verwandte Themen