2017-07-11 5 views
-5

ich diese Funktion geschrieben, aber ...

def look_up(to_search,target): 
    for (index , item) in enumerate(to_search): 
     if item == target: 
      break 

    else: 
     return(-1) 
    return(index) 

, wenn ich in einem Namen übergeben, die sie auf dieser Liste ist gibt den Index dieses Namens, aber wenn ich in einem falschen Namen übergeben es gibt -1 zurück und liefert nicht den "return (index)", auch wenn die "return (index)" -Anweisung außerhalb der for-Schleife liegt. Warum ist das ?? und ich kann auch nichts anderes zur "ELSE" -Anweisung hinzufügen, ich habe versucht, eine "print" -Anweisung zu der else hinzuzufügen, aber sie druckt sie nicht.kann jemand diese Funktion mir erklären

names=['neno', 'jay', 'james,'alex','adam','robert','geen'] 

name_index=look_up(names,"geen") 

print(name_index) 


print("the name is at location: {}".format(name_index)) 
+0

' 'james' sollte' sein' james'' richtig? –

+0

Sie haben eine Funktion geschrieben, verstehen aber nicht, was sie tut? Haben Sie versucht, Ihren Code mit einem Debugger oder Pen & Paper durchzulaufen? – Li357

+1

Bitte klären Sie Ihr Ziel und Frage – otayeby

Antwort

1
def look_up(to_search,target): 
    for (index , item) in enumerate(to_search): 
     if item == target: 
      break # break statement here will break flow of for loop 
     else: 
      return(-1) # when you write return statement in function function will not execute any line after it 

    return(index) 
    print("This line never be printed") # this line is below return statement which will never execute 

immer Sie Index Funktion mit names.index("NAME") für mehr finden Sie Funktion wie folgt implementieren:

def look_up_new(search_in, search_this): 
    if search_this in search_in: 
     return search_in.index(search_this) # returns index of the string if exist 
    else: 
     print("NOT EXIST") # you can print this line in else block also where I have written False 
     return False 

names=['neno', 'jay', 'james','alex','adam','robert','geen'] 

name_index = look_up_new(names, "alex") 

if name_index: 
    print("the name is at location: {}".format(name_index)) 
else: 
    pass # if you are not willing to doing anything at here you can avoid this loop 
Verwandte Themen