bool("False") zwraca True — dlaczego?

OliviaPyAutor

Myślałem, że zamieni napis na fałsz. A tu niespodzianka.

1

Komentarze 4

Dołącz do dyskusji

Masz już konto? Zaloguj się

  1. ElaKowalskaodpowiedzi: 1

    bool() na napisie sprawdza tylko, czy napis jest pusty. Każdy niepusty napis, także "False" czy "0", daje True. Tylko "" daje False.

    Jeśli czytasz "true"/"false" z pliku albo od użytkownika, porównaj tekst:

    wlaczone = tekst.strip().lower() == "true"
    3
    1. OliviaPyAutor

      O kurczę, miałem dokładnie taki błąd w ustawieniach skryptu.

      0
    2. HenryWrites

      To samo z listami: bool([]) to False, bool([0]) to True, bo lista nie jest pusta.

      6
      1. CharlieH

        Dobre pytanie, nie wiedziałem tego mimo kilku miesięcy nauki.

        1