• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python nie rozumiem kodu

Cloud VPS
0 głosów
230 wizyt
pytanie zadane 14 maja 2022 w Python przez thesolitaryofchoice Początkujący (490 p.)

Witam,

Mam prośbę, przeglądam taki kurs aktualnie: https://www.youtube.com/watch?v=Ej_02ICOIgs&t=4779&ab_channel=freeCodeCamp.org i nie mogę pojąć tego kawałka kodu:

    @staticmethod
    def is_integer(num):
        if isinstance(num, float):
            return num.is_integer()
        elif isinstance(num, int):
            True
        else:
            False

To znaczy, jeżeli wpiszę np. Nazwa_Klasy.is_integer(7.0) to metoda statyczna zwróci True, a jeżeli wpiszę Nazwa_Klasy.is_integer(7.5) to ta metoda statyczna zwróci mi False. A jeżeli wpiszę jako num jakiegoś stringa albo integera to zwróci mi None. Nie mogę pojąć dlaczego przy wartości, która jest liczbą całkowitą zwraca None. Rozumiem, że przechodzi przez pierwsze wyrażenie warunkowe 'odnotowuje', że to nie liczba zmiennoprzecinkowa, no właśnie i dlaczego przechodzi do wartości domyślnie zwracanej jak w przypadku gdy funkcja/metoda nic konkretnego, by nie zwracała, zamiast przejść do elif is_instance(num, int): True. No i jak to się dzieje, że funkcja jakby obcina przy 7.0 zero na końcu i traktuje to jak liczbę całkowitą. Przepraszam, być może mój problem wynika z tego, że biegle nie władam angielskim, a film jest jednak po angielsku. Z góry dziękuję za każdą pomoc.

Pozdrawiam

Mateusz

1 odpowiedź

+1 głos
odpowiedź 14 maja 2022 przez adrian17 Mentor (354,120 p.)
wybrane 14 maja 2022 przez thesolitaryofchoice
 
Najlepsza

Bo funkcja jest źle napisana :)

        True
    else:
        False

to nie jest Haskell czy Rust, że wartość jest automatycznie zwracana z funkcji. Musisz napisać `return <costam>`, inaczej funkcja dochodzi do końca i domyślnie zwraca None. Tak jak teraz, to ten "True" i "False" nic nie robią.

komentarz 14 maja 2022 przez thesolitaryofchoice Początkujący (490 p.)
Sorki, widać zaginąłem w akcji. Rzeczywiście jak wpisałem return to wszystko działa. Dzięki.

Podobne pytania

+1 głos
1 odpowiedź 532 wizyt
pytanie zadane 14 maja 2022 w Python przez thesolitaryofchoice Początkujący (490 p.)
+1 głos
0 odpowiedzi 442 wizyt
pytanie zadane 2 maja 2022 w Python przez niezalogowany
0 głosów
1 odpowiedź 1,223 wizyt
pytanie zadane 13 listopada 2020 w Python przez PapierowyRycerz Początkujący (290 p.)

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...