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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
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
  • Odpowiedz
@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.
  • Odpowiedz