Wyjaśnienie lekcji
Po tej lekcji będziesz potrafić:
False, None, zero, pusty tekst i niepuste wartości są traktowane jako prawdziwe, czy fałszywe.not do sprawdzania obecności lub pustki.bool().0, od naprawdę brakujących danych.Warunki w Pythonie nie wymagają, aby wartość była dosłownie True lub False. Wiele wartości ma domyślną wartość logiczną.
Typowe wartości fałszywe (falsy) to:
False
None
0
0.0
""Większość pozostałych wartości jest prawdziwa (truthy), w tym niepuste napisy i liczby różne od zera.
Dzięki temu bezpośrednie sprawdzenia są zwięzłe:
if api_token:
print("Token available")Użyj not, gdy chcesz obsłużyć ścieżkę dla wartości pustej lub brakującej:
if not api_token:
print("Token missing")Możesz wywołać bool(value), aby bezpośrednio sprawdzić wartość logiczną. Bezpośrednie sprawdzanie wartości prawdziwej nie zawsze jest jednak właściwym testem. Jeśli 0 jest poprawną skonfigurowaną wartością, if not retry_limit: potraktuje ją tak samo jak None. W takim przypadku sprawdź brak danych wprost za pomocą is None.
Pusty napis jest fałszywy, więc wykonuje się gałąź awaryjna.
release_note = ""
if release_note:
print("Note ready")
else:
print("No release note")Wynik:
No release notenot dla ścieżki pustej wartościnot odwraca wartość logiczną.
api_token = ""
if not api_token:
print("Authentication unavailable")Wynik:
Authentication unavailablebool()bool() pokazuje, jak Python interpretuje wartość.
print(bool(0))
print(bool(""))
print(bool("worker"))
print(bool(3))Wynik:
False
False
True
TrueLimit czasu równy zero może być zamierzony, a None oznacza, że nie podano żadnej wartości.
timeout_seconds = 0
if timeout_seconds is None:
print("Timeout: default")
else:
print(f"Timeout: {timeout_seconds}")Wynik:
Timeout: 0| Wartość | Wartość logiczna |
|---|---|
False, None | Fałszywa |
0, 0.0 | Fałszywa |
"" | Fałszywa |
| Niepusty tekst | Prawdziwa |
| Większość liczb różnych od zera | Prawdziwa |
is None szerokim sprawdzeniem wartości fałszywej, gdy ta różnica ma znaczenie."False" z wartością logiczną False; niepusty tekst jest prawdziwy.