Zwracanie "None"

0

Spróbowałem programik (który stworzyłem we funkcji i dałem wcześniej na forum ), przerobić na klasę . I gdzieś zrobiłem błąd, bo po wywołaniu kodu zwraca mi None, a powinienem mieć info o danej pozycji w zbiorze( 10) itp... Moglibyście podpowiedzieć, gdzie tu zrobiłem błąd?

class Figures:
    magazzine = [5,10,8,7,9,3,22]

    def __init__(self,start,possition):
        self.start = start
        self.possition = possition

    def looking_position(self):
        if self.magazzine[self.possition] == self.start:
            print(f'I found position on: {self.possition}')
        
            
        elif self.possition == len(self.magazzine)-1:
            print("Didn't found position")
        self.possition+1
        

figures = Figures(10,0)
print(figures.looking_position())
3

Nie masz returna

1

Metoda looking_position() niczego nie zwraca więc print() drukuje None. Nie drukuje się żaden z komunikatów bo nie jest spełniony żaden z warunków if...elif.
Od sprawdzania czy wartość jest elementem listy jest operator in np. if x in list:

47

Nie wiem co chcesz zrobić, ale jesli próbujesz filtorwać po indexie to od tego są pętle.

def looking_position(self):
     return [x for x in range(len(self.magazzine)) if self.magazzine[x] == self.start]
0

Dzięki Wam za pomoc. Mój bład , bo nie uzyłem pętli w celu szukania po indeksie :)

Udało mi się to na swój sposób napisać:

class Figures:
    magazzine = [5,10,8,7,9,3,22]

    def __init__(self,start,position):
        self.start = start
        self.position = position

    def looking_position(self):
        for x in self.magazzine:
            if x == self.start:
                return (f'I found on position: {self.position}')

            elif self.position == len(self.magazzine)-1:
                return "Didn't found anything "

            self.position +=1
          
figures = Figures(33,0)
print(figures.looking_position())

Mam nadzieję że taki kod może być, choć kolega @ledi12 dał skrótowe rozwiązanie :) Powoli obczajam tą obiektówkę :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.