2016-07-06 55 views
0

我想找到爲Python函數輸入的數字。輸入值不固定;它可能在成千上萬,缺乏或核心。如何找到數字是在Python中的某個指定範圍之間?

我正在使用Python 2.7。

例子:

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 

我在讀input.csv文件。並且我想檢查time列是否在特定的範圍內,但它不能正常工作。

我錯過了什麼?

+0

什麼工作不正常? (我看到一些縮進問題,並且「//」不是python中的有效註釋) – salparadise

+0

在這種情況下什麼是「缺乏」或「核心」? – user2357112

+0

@ user2357112-現在是微秒的時間... – kit

回答

0

你必須檢查int(num),而不是僅僅num,因爲你需要比較integer vs integer
也似乎有你的第三個條件

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

我認爲你應該有下面這行一個錯字錯誤:

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

@ Arseniy-謝謝......現在正在工作......問題是 - ** int(num)** – kit

1

你的num是一個字符串,你將它與整數進行比較。在Python 2中,將字符串與整數進行比較是合法的,但結果不會有用(在Python 3中,它是一個錯誤)。

您需要致電check(int(num)),以便比較按預期工作。

+0

@ Blckknght-謝謝... – kit