2016-08-02 17 views
0

['10 .1.1.1' , 'Bad IP-Adresse']Funktion wird nicht funktionieren richtigen Wert mit IF zurückkehren, ELSE Statement

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 

Der Code funktioniert, wenn ich die else-Anweisung zu entfernen, sondern gibt nur „Activity Unbekannt "wenn eine andere Aussage vorhanden ist. Ich habe ein paar verschiedene Wege ausprobiert, um das zu erreichen. Sie haben alle dasselbe Ergebnis erbracht.

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

Antwort

0

1.wenn reader = [] werden Sie nicht für die Schleife eingeben.

2.You haben falsche tabellarisch Funktion:

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 schreiben kann es kürzer:

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"