harnasiek
#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
  • Najlepsze
  • Wszystkie komentarze
Arogancky
@harnasiek: if element in elementy_zbioru: return true
rinq0k
@harnasiek: Napisał ci w pierwszym komentarzu
Ulyssos
@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.
Arogancky
@harnasiek: nie wiem po co range używasz
IamHater
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
harnasiek
harnasiek Autor
0
@Arogancky: to co mogę użyć zamiast range?
Arogancky
@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
harnasiek
harnasiek Autor
0
@IamHater: znaczy ten indeks i tak jest potrzebny do zadania żeby pokazać wartość i indeks elementu, ale już ogarnąłem na ifach to
Saly
Saly
0
@harnasiek: przecież indeks to i xd