Rozwiązany

Czy and sprawdza drugi warunek, gdy pierwszy jest fałszywy?

OllieGrantAutor

Mam if lista and lista[0] > 5: i działa nawet dla pustej listy. Dlaczego nie ma błędu indeksu?

4

Komentarze 4

Zaloguj się, żeby dołączyć do dyskusji.

Zaloguj się Załóż konto
  1. PiotrZ Rozwiązanieodpowiedzi: 2

    To tzw. short-circuit: and przestaje sprawdzać, gdy pierwszy warunek jest fałszywy, bo wynik i tak będzie False. Pusta lista jest fałszywa, więc lista[0] w ogóle się nie wykonuje.

    or działa analogicznie: kończy na pierwszej prawdzie.

    11
    1. OllieGrantAutorodpowiedzi: 1

      Czyli kolejność warunków ma znaczenie. Super, dzięki.

      0
      1. ElaKowalska

        Tylko nie przesadzaj, długie łańcuchy and/or z efektami ubocznymi są trudne do czytania.

        1
    2. FreyaL

      Często się tego używa celowo właśnie do zabezpieczenia przed błędem, tak jak w Twoim kodzie.

      5