Подтвердить что ты не робот

Как использовать логическое значение в Python?

Содержит ли Python логическое значение? Я знаю, что вы можете сделать:

checker = 1
if checker:
    #dostuff

Но я довольно педантичен и мне нравится видеть булевы на Java. Например:

Boolean checker;
if (someDecision)
{
    checker = true;
}
if(checker)
{
    //some stuff
}

Есть ли такая вещь, как логическое значение в Python? Я не могу найти ничего подобного в документации.

4b9b3361

Ответ 1

checker = None 

if some_decision:
    checker = True

if checker:
    # some stuff

[редактировать]

Для получения дополнительной информации: http://docs.python.org/library/functions.html#bool

Ваш код тоже работает, так как 1 при необходимости преобразуется в True. На самом деле Python долгое время не имел логического типа (как в старом C), и некоторые программисты все еще используют целые числа вместо логических.

Ответ 2

Булевы встроенные капитализируются: True и False.

Обратите внимание, что вы можете сделать checker = bool(some_decision) как сокращенное обозначение bool вернуть только True или False.

Хорошо знать, что классы, определяющие __nonzero__ или __len__, будут True или False в зависимости от результат этих функций, но практически каждый другой логический результат будет True (кроме объекта None, пустых последовательностей и числовых нулей).

Ответ 3

True... и False, очевидно.

В противном случае None оценивается как False, как и целое число 0, а также float 0.0 (хотя я бы не использовал подобные float). Кроме того, пустые списки [], пустые tuplets () и пустые строки '' или "" оцениваются как False.

Попробуйте сами с помощью функции bool():

bool([])
bool(['a value'])
bool('')
bool('A string')
bool(True)  # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)

и т.д..

Ответ 4

Логические типы определены в документации:
http://docs.python.org/library/stdtypes.html#boolean-values

Цитата из doc:

Логические значения - это два константных объекта False и True. Они используются для представления значений истинности (хотя другие значения также могут считаться ложными или истинными). В числовых контекстах (например, при использовании в качестве аргумента для арифметического оператора) они ведут себя как целые числа 0 и 1 соответственно. Встроенная функция bool() может использоваться для приведения любого значения в логическое значение, если значение может быть интерпретировано как значение истины (см. Раздел "Тестирование значения истины" выше).

Они записываются как False и True соответственно.

Итак, в java-коде удалите скобки, измените true на true, и вы будете в порядке:)

Ответ 5

Да, существует тип данных bool (который наследует от int и имеет только два значения: True и False).

Но также Python имеет концепцию boolean-able для каждого объекта, который используется при вызове функции bool([x]).

Подробнее: объект. отличное от нуля и boolean-value-of-objects-in-python.

Ответ 6

В отличие от Java, где вы бы объявили boolean flag = True, в Python вы можете просто объявить myFlag = True

Python интерпретирует это как логическую переменную