2016-08-02 91 views
0

['10 .1.1.1' ,‘壞IP地址’]功能將無法正常工作返回與IF正確的值,else語句

def findIP(IP): 
    with open(tsvfile,'rt')as f: 
     reader = csv.reader(f, delimiter='\t') 
      for row in reader: 
       if IP.strip() in row[0]: 
        x = row[1] 
       else: 
        x = "Activity Unknown" 
       return x 

代碼工作,如果我刪除else語句,但僅返回「活動未知「當else語句存在時。我嘗試了幾種不同的方式來完成這項工作。他們都取得了相同的結果。

return row[1] if IP.strip() in row[0] else "Activity Unknown" 

回答

0

1.when reader = []你不會輸入for循環。

2.You有不正確的製表函數:

def findIP(IP): 
    with open(tsvfile,'rt')as f: 
    reader = csv.reader(f, delimiter='\t') 
     for row in reader: 
      if IP.strip() in row[0]: 
       x = row[1] 
      else: 
       x = "Activity Unknown" 
      return x 

3.You可以寫出更短:

def findIP(IP): 
    reader = csv.reader(f, delimiter='\t') 
    try: 
     return reader[0][1] if IP.strip() in reader[0][1] else "Activity Unknown" 
    except IndexError: 
     return "Activity Unknown"