Действительно ли Python содержит логическое значение? Я знаю, что вы можете:
checker = 1
if checker:
#dostuff
Но я довольно педантичен и люблю видеть логические значения в Java. Например:
Boolean checker;
if (someDecision)
{
checker = true;
}
if(checker)
{
//some stuff
}
Есть ли в Python такое понятие, как логическое значение? Я не могу найти ничего подобного в документации.
some_var = int("1234")
... эта строка явно устанавливаетsome_var
=>int
Ответы:
[Редактировать]
Для получения дополнительной информации: http://docs.python.org/library/functions.html#bool
Ваш код тоже работает, поскольку при необходимости
1
преобразуется вTrue
. На самом деле Python долгое время не имел логического типа (как в старом C), и некоторые программисты до сих пор используют целые числа вместо логических.источник
True
иFalse
являются ссылками на расширенныеint
объекты с переопределением__str__
и__repr__
.1 is not True
, но1 == True
.int
типа, как показаноisinstance(True, int)
.Встроенные логические функции начинаются с заглавной буквы:
True
иFalse
.Также обратите внимание на то, что вы можете
checker = bool(some_decision)
использовать сокращенное обозначение -bool
вернет толькоTrue
илиFalse
.Это хорошо , чтобы знать , для справки в будущем , что классы , определяющих
__nonzero__
или__len__
будут ,True
или вFalse
зависимости от результата этих функций, но практически логический результат каждого другого объекта будетTrue
(за исключениемNone
объектов, пустые последовательности и числовых нули).источник
True
... иFalse
очевидно.В противном случае
None
оценивается как False, как и целое число,0
а также число с плавающей запятой0.0
(хотя я бы не стал использовать такие числа с плавающей запятой). Кроме того, пустые списки[]
, пустые кортежи()
и пустые строки''
или""
оцениваются как False.Попробуйте сами с функцией
bool()
:и т.д..
источник
Логические типы определены в документации:
http://docs.python.org/library/stdtypes.html#boolean-values
Цитата из документа:
Итак, в java-коде удалите фигурные скобки, измените
true
на,True
и все будет в порядке :)источник
Да, есть
bool
тип данных (который наследуется отint
двух значений и имеет только два значения:True
иFalse
).Но также в Python есть
boolean-able
концепция для каждого объекта, которая используется приbool([x])
вызове функции .Подробнее: объект. ненулевое и логическое-значение-объектов-в-питоне .
источник
В отличие от Java, в которой вы объявляете
boolean flag = True
, в Python вы можете просто объявитьmyFlag = True
Python интерпретирует это как логическую переменную
источник