Czy Python faktycznie zawiera wartość logiczną? Wiem, że potrafisz:
checker = 1
if checker:
#dostuff
Ale jestem dość pedantyczny i lubię oglądać wartości logiczne w Javie. Na przykład:
Boolean checker;
if (someDecision)
{
checker = true;
}
if(checker)
{
//some stuff
}
Czy istnieje coś takiego jak Boolean w Pythonie? Nie mogę znaleźć czegoś podobnego w dokumentacji.
some_var = int("1234")
... ta linia wyraźnie ustawiasome_var
=>int
Odpowiedzi:
[Edytować]
Więcej informacji: http://docs.python.org/library/functions.html#bool
Twój kod też działa, ponieważ
1
jest konwertowany na,True
gdy jest to konieczne. W rzeczywistości Python przez długi czas nie miał typu boolowskiego (jak w starym C), a niektórzy programiści nadal używają liczb całkowitych zamiast wartości logicznych.źródło
True
iFalse
są odniesieniami do rozszerzonychint
obiektów z nadpisanymi__str__
i__repr__
.1 is not True
, ale1 == True
.int
typu, jak pokazano naisinstance(True, int)
.Wbudowane wartości logiczne są pisane wielkimi literami:
True
iFalse
.Zwróć też uwagę, że możesz zrobić
checker = bool(some_decision)
skrótowo -bool
wróci tylkoTrue
lubFalse
.Dobrze jest wiedzieć na przyszłość, że klasy definiujące
__nonzero__
lub__len__
będąTrue
alboFalse
zależne od wyniku tych funkcji, ale praktycznie każdy inny wynik boolowski będzieTrue
(z wyjątkiemNone
obiektu, pustych sekwencji i zer numerycznych).źródło
True
... iFalse
oczywiście.W przeciwnym razie zwraca
None
wartość False, podobnie jak liczbę całkowitą0
i zmiennoprzecinkową0.0
(chociaż nie używałbym takich liczb zmiennoprzecinkowych ). Poza tym puste listy[]
, puste krotki()
i puste ciągi znaków''
lub""
wartości False.Wypróbuj sam z funkcją
bool()
:itp..
źródło
Typy logiczne są zdefiniowane w dokumentacji:
http://docs.python.org/library/stdtypes.html#boolean-values
Cytat z doc:
Więc w kodzie java usuń nawiasy klamrowe, zmień
true
naTrue
i wszystko będzie dobrze :)źródło
Tak, istnieje
bool
typ danych (który dziedziczyint
i ma tylko dwie wartości:True
iFalse
).Ale także Python ma
boolean-able
koncepcję dla każdego obiektu, która jest używana, gdy funkcjabool([x])
wywoływana jest .Zobacz więcej: obiekt. niezerowa i boolean-value-of-objects-in-Python .
źródło
W przeciwieństwie do Javy, w której zadeklarowałbyś
boolean flag = True
, w Pythonie możesz po prostu zadeklarowaćmyFlag = True
Python zinterpretowałby to jako zmienną boolowską
źródło