2011-02-03 3 views
1

Я только начал изучать Python. Я наткнулся на следующий кодНе могу понять причину вывода в Python

if 0:

print "And now for something completely different..." 

else:

print "What's all this, then?" 

Я понимаю, что выход должен быть What's all this, then?, но я не могу показаться, чтобы найти правильное объяснение этого. Надеюсь, кто-то может заставить меня понять это.

Спасибо.

+2

Если вы хотите знать * почему * кто-то пишет код следующим образом: Я думаю, это только для демонстрационной цели. Очевидно, что нет такого условия. –

+0

Да, это чисто для демонстрационной цели. Как я уже сказал, я изучаю Python. Так что ссылайтесь на базовую документацию. – Dharmit

ответ

5

0 в логическом контексте False. То же самое относится и к пустой строке, списки и т.д.

python docs От:

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

4

Нулевой интерпретируется как «ложь» в Python (и многих других языков программирования)

1

0 False. Оба логические и логически и практически в каждом другом случае.

О чем вас смущает?

+0

@ Downvoter: Любая причина для -1? – Falmarri

1

И почти все, что не является 0 Правда, при использовании в тесте. Любое число (включая негативы) трактуется как True, но «None» - False. Непустые строки символов True, пустые - False.

Проверьте логические или логические функции Python в документах. Кроме того, забудьте все, что вы когда-либо узнали в основной математике (ы) в школе, потому что ....

>>> 1 and 1 
1 

>>> 2 and 2 
2 

Честно говоря, это имеет смысл ...

1

Как говорилось в другом месте, в отличие от некоторых языков (но, как некоторые другие), Python интерпретирует 0 как false, таким образом, else активируется вместо then. Чтобы сделать тогда секцию, вам нужно будет сделать что-то вроде if 1: (или другое ненулевое значение). Пожалуйста, не кодируйте это в реальной жизни. Подробнее см. В документах Python по адресу ifanother) и booleans.

Смежные вопросы