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

Python nie rozumiem kodu

0 głosów
65 wizyt
pytanie zadane 5 dni temu w Python przez thesolitaryofchoice Początkujący (430 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ź 5 dni temu przez adrian17 Ekspert (319,600 p.)
wybrane 5 dni temu 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 5 dni temu przez thesolitaryofchoice Początkujący (430 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ź 90 wizyt
pytanie zadane 5 dni temu w Python przez thesolitaryofchoice Początkujący (430 p.)
+1 głos
0 odpowiedzi 87 wizyt
pytanie zadane 2 maja w Python przez Michal123456 Bywalec (2,030 p.)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 13 listopada 2020 w Python przez PapierowyRycerz Początkujący (290 p.)

87,942 zapytań

136,520 odpowiedzi

304,383 komentarzy

58,306 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...