2016-08-02 12 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文が存在する場合は「不明」となります。私はこの作業を行うためにいくつかの異なる方法を試しました。彼らはすべて同じ結果をもたらしました。

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

答えて

0

1.whenリーダー= []あなたはforループを入力しません。

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" 

2.Youは間違った集計機能を持っています