2016-07-06 7 views
0

Ich möchte die Nummer finden, die für die Python-Funktion eingegeben wird. Der Eingabewert ist nicht festgelegt. Es kann in Tausenden, Mängeln oder Kernen sein.Wie finden Sie die Nummer in einem bestimmten Bereich in Python?

Ich benutze Python 2.7.

Beispiel:

def check(number): 

    if(10000 <= number <= 50000): 
     print "Number is between 10000 & 50000" 

    if(50001 <= number <= 100000): 
     print "Number is between 50001 & 100000" 

    if(100000 <= number <= 500000): 
     print "Number is between 100000 & 500000" 

if __name__ == "__main__": 

    with open("input.csv", "r+b") as f: 
     m = mmap.mmap(f.fileno(), 0) 
     reader = csv.DictReader(iter(m.readline, "")) 
     for read in reader: 
     num = read['time'] 
     check(num)#calling check function 

input.csv -

time 
404907 
404863 
404345 
403630 
403562 
120279146 
120279128 
216870 
58460 

ich input.csv Datei gerade lese. und ich möchte überprüfen, ob die time Spalte in einem bestimmten Bereich ist, aber es funktioniert nicht richtig.

Was fehlt mir?

+0

was funktioniert nicht richtig? (Ich sehe einige Probleme mit Einzug und "//" ist kein gültiger Kommentar in Python) – salparadise

+0

Was sind "Mängel" oder "Kerne" in diesem Zusammenhang? – user2357112

+0

@ user2357112- Es ist Zeit in Mikrosekunden ... – kit

Antwort

0

Sie haben int(num) statt nur num, um zu überprüfen, weil Sie integer vs integer
auch vergleichen brauchen scheint es ein Tippfehler Fehler in der dritten Bedingung ist

if(100000 <= number <= 500000): 
     print "Number is between 100000 & 500000 

Ich soll Ihnen die folgende Zeile haben sollte:

if(100001 <= number <= 500000): 
     print "Number is between 100001 & 500000"` 
+0

@ Arseniy- Danke ... Es funktioniert jetzt ... Problem ist - ** int (num) ** – kit

1

Ihre num ist eine Zeichenfolge, und Sie vergleichen es mit ganzen Zahlen. In Python 2 ist es legal, einen String mit einem Integer zu vergleichen, aber das Ergebnis wird nicht nützlich sein (in Python 3 ist es ein Fehler).

Sie müssen check(int(num)) aufrufen, damit die Vergleiche wie gewünscht funktionieren.

+0

@ Blckknght- Danke ... – kit