arrays - Python mener 100 er mindre end 50?

Indlæg af Hanne Mølgaard Plasc

Problem



her er min kode:


stock\_file  = open('Task\_3\_1.txt', "rt") #open file
stock\_lines = stock\_file.readlines() #convert items to list
total\_buys = []
total\_cost = []
done = 0
for o in range(0,(len(stock\_lines)-1)): 
    edit = list(stock\_lines[o])
    for m in range(1,2): #convert file to array
        edit.remove(edit[len(edit)-1])
    stock\_lines[o] = ''.join(edit)
to\_do = input("1. Find items that need to be restocked
")
if to\_do == "1":    
    x = 1
    while x < len(stock\_lines):
        if stock\_lines[x] < stock\_lines[x+1]:        
            print(stock\_lines[x-1], "needs restocking (" + stock\_lines[x] +  " stock, restock level is", stock\_lines[x+1] +")")
        x+=4 #increases x to check the next item


Mit problem er, at når det kører, er det meningen at udskrive, hvad der skal genopbygges (hvilke lagerniveauer er lavere end restockniveauet). Her er lagerfilen, jeg bruger:


Egg
100
50
75
Crocodile clip
30
12
30
Chocolate
206
300
390


Den første linje er varenavn, derefter lagerniveau, derefter restockniveau, derefter mål lagerniveau (mængden af ​​lager, som varen vil have, når den er genopfyldt).


Når jeg kører dette:


1. Find items that need to be restocked
1
Egg needs restocking (100 stock, restock level is 50)
Chocolate needs restocking (206 stock, restock level is 300)


Som du kan se, siger det mig 100 er mindre end 50. Enhver hjælp ville være fantastisk.


Jeg har allerede forsøgt at skifte 100 til 101 for at se om den dobbelte nul ramte den.

Bedste reference


>>> '100' < '50'
True
>>> 100 < 50
False

Andre referencer 1


du sammenligner strings .


"100" < "50"


fordi 1 kommer før 5.


Fix som følger:


if int(stock\_lines[x]) < int(stock\_lines[x+1]):     

Andre referencer 2


Skift til int(stock\_lines[x]) < int(stock\_lines[x+1]).