2016-05-31 11 views
0

Ich habe diese Daten in eine CSV-Druck falsch, wenn Aussage

34512340,0 
12395675,2 
56756777,1 

Mein Code unten ist die Überprüfung, was der Lagerbestand jedes Produkt. Das Produkt ist die achtstellige Nummer in der CSV, und die Zahl nach dem Komma ist die Menge des verfügbaren Bestands.

Wenn der Lagerbestand über 0 liegt, funktioniert alles.

Wenn der Lagerbestand jedoch den Wert 0 erreicht, druckt das Programm stattdessen die Meldung "Neuer Auftrag" aus. Kann jemand herausfinden, warum das passiert?

def checkstocklevel(code): 
    with open('stockcontrol.csv',newline='') as f: 
     for line in f: 
      if code in line: 
       data = line.split(",") 
       stocklevel = int(data[1]) 
       if stocklevel <= 5: 
        print("New Order Required - Remaining Stock:",data[1],) 
       elif stocklevel <= 10: 
        print("Low Stock - Remaining Stock:",data[1],) 
       elif stocklevel < 1: 
        print("Sorry, this product is out of stock") 
        f = open("receipts","a") 
        f.write(code) 
        f.write(" Product Out Of Stock\n") 
        f.close() 
       else: 
        print("Normal Stock -",data[1],) 
       return stocklevel 

Dank

Antwort

3

Ein Wert von 0 bereits entspricht Ihr erster Zustand stocklevel <= 5 so Ihr späterer Zustand < 1 nie erreicht wird.

Ordnen Sie Ihre Bedingungen neu. Beginnen Sie mit der strengsten Bedingung, dann entspannen Sie sie.

  if stocklevel < 1: 
       print("Sorry, this product is out of stock") 
       f = open("receipts","a") 
       f.write(code) 
       f.write(" Product Out Of Stock\n") 
       f.close() 
      elif stocklevel <= 5: 
       print("New Order Required - Remaining Stock:",data[1],) 
      elif stocklevel <= 10: 
       print("Low Stock - Remaining Stock:",data[1],) 
      else: 
       print("Normal Stock -",data[1],)