Wpis z mikrobloga

#programowanie #python

elementy_zbioru = [2,56,3,6,7]
element = int(input("Ktory element chcesz szukac? "))
for i in range(len(elementy_zbioru)):
if element == elementy_zbioru[i]:
return print(elementy_zbioru.index(i))
else:
return print("Brak elementu")

Jaki tutaj jest błąd że nawet element ktory chce wyszukac to 7 a pokazuje komunikat "brak elementu"
ogólnie ten kod ma działać jako wyszukiwanie wyczerpujące
  • 10
@harnasiek:
For index, val in enumerate(list)
Albo iterujesz tylko po wartości listy bez enumerate
Albo sprawdzasz po prostu czy Item in list.
Range nie służy do takich przypadków bo jak widzisz to nie działa nawet
Jaki tutaj jest błąd że nawet element ktory chce wyszukac to 7 a pokazuje komunikat "brak elementu"


@harnasiek: napisałeś pętlę gdzie dla każdej iteracji masz if: return else:return. Taka pętla zawsze skończy się po jednej iteracji - po sprawdzeniu pierwszego elementu.

Tzn. tak zakładam bo w sumie wkleiłeś kod bez wcięć

to co mogę użyć zamiast range?


lista w pythonie jest iterowalna, możesz po prostu pętlę po elementach zrobić bezpośrednio, bez
@harnasiek: jeśli w funkcji kiedykolwiek aktywuje się "return", to kończy funkcję, w dużym uproszczeniu. Więc jeśli przy pierwszym elemencie zobaczy, że nie jest to siedem - zwróci od razu wynik funkcji jako "brak elementu". Poza pętlą, czyli po tym jak sie wykona daj return "brak elementu", i usuń całego elsa z tej pętli.