Использование И и НЕ оператор в Python [дубликат]

Если вы хотите сделать миниатюру UIImage (с пропорциональным изменением размера или, возможно, с некоторым обрезанием), проверьте категорию UIImage + Resize , которая позволяет вам использовать краткий, подобный ImageMagick-подобный синтаксис:

UIImage* squareImage       = [image resizedImageByMagick: @"320x320#"];

61
задан Andrew Hare 2 July 2009 в 17:26
поделиться

3 ответа

Вы должны написать:

if (self.a != 0) and (self.b != 0) :

" & ] " является побитовым оператором и не подходит для логических операций. Эквивалент « && » - «и» в Python.

Более короткий способ проверить, что вы хотите, - использовать оператор «in»:

if 0 not in (self.a, self.b) :

Вы можете проверить, является ли что-либо частью итерация с "in", она работает для:

  • Кортежей. IE: "foo" in ("foo", 1, c, и т.д.) вернет истинные
  • списки. IE: «foo» в [«foo», 1, c и т. Д.] вернет true
  • Strings. IE: "a" in "ago" вернет истину
  • Dict. IE: "foo" в {"foo": "bar"} вернет true

В качестве ответа на комментарии:

Да, использование "in" медленнее, так как вы создаете Объект кортежа, но на самом деле производительность здесь не проблема, плюс удобочитаемость имеет большое значение в Python.

Для проверки треугольника легче читать:

0 not in (self.a, self.b, self.c)

Чем

(self.a != 0) and (self.b != 0) and (self.c != 0) 

Это тоже легче рефакторинг.

Конечно, в в этом примере это действительно не так важно, это очень простой фрагмент. Но этот стиль ведет к коду Pythonic, который ведет к более счастливому программисту (и худеет, улучшает сексуальную жизнь и т. Д.) Над большими программами.

123
ответ дан 24 November 2019 в 17:06
поделиться

Use the keyword and, not & because & is a bit operator.

Be careful with this... just so you know, in Java and C++, the & operator is ALSO a bit operator. The correct way to do a boolean comparison in those languages is &&. Similarly | is a bit operator, and || is a boolean operator. In Python and and or are used for boolean comparisons.

22
ответ дан 24 November 2019 в 17:06
поделиться

Это называется и и или в Python.

12
ответ дан 24 November 2019 в 17:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: