Как логический и
и или
Операторы работают в контексте одноклассников Python?
Вы можете знать стандартное использование логических операторов, применяемых к логическим значениям:
>>> True and False False >>> False or True True
Но для этих операторов есть все больше, что только эксперты в искусстве пишущих лаконистых питонов.
Например, следующее использование или
Оператор, примененный к не-логическим значениям, малоизвестно:
>>> 'hello' or 42 'hello' >>> [] or 42 42
Точно так же следующее использование и оператор часто вызывает путаницу в читателях продвинутых одноиналиров Python:
>>> 'hello' and 42 42 >>> [] and 42 []
Как и
и или
Работа оператора при применении к не-логированным операндам?
Чтобы понять, что происходит, вам нужно посмотреть на определения логических операторов:
А или Б. | Возвращает B Если выражение A оценивает ложно, используя неявное булевое преобразование. Если выражение A оценивает true, выражение A возвращается. |
А и Б. | Возвращает B Если выражение A оценивает к True с использованием неявного булева преобразования. Если выражение A оценивает ложное, выражение A возвращается. |
Изучите эти объяснения тщательно! Возвращаемое значение имеет одинаковых данных операндов – они возвращают только логическое значение, если операнды уже логичны!
Эта оптимизация называется короткое замыкание И это обычная практика во многих языках программирования. Например, не нужно оценивать результат второго операнда и операции, если первый операнд оценивает Ложь
Отказ Вся операция должна оценивать в Ложь
В этом случае потому, что логические и только возвращает Правда
Если обе операнды являются Правда
Отказ
Python идет на один шаг дальше, используя свойство неявных логических преобразований. Каждый объект может быть неявно преобразован в логическое значение. Вот почему вы видите следующий код:
l = [] if l: print('hi') else: print('bye') # bye
Вы проходите Список в то, если состояние. Затем Python преобразует список для логического значения, чтобы определить, какую ветвь для посещения дальше. Пустой список оценивает Ложь
Отказ Все остальные списки оцениваются в Правда
Так что результат – Пока
Отказ
Вместе короткие замыкания и неявное логическое преобразование позволяют логическими операторам и или, либо наносить на любой два объекта Python в качестве операндов. Возвращаемое значение всегда является одним из двух операндов, использующих правила короткого замыкания, описанные в таблице.
Попробуйте сами в нашем интерактивном коде раковину:
Упражнение : Угадай вывод! Тогда проверьте, были ли вы правы! Создайте свои собственные сумасшедшие операнды и оцените их, выполняя код в вашем браузере.
Python One-Liners Книга
Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.
Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.
Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:
• Используйте структуры данных для решения реальных проблем, такие как использование булевой индексации для поиска городов с загрязнением выше среднего • Используйте Numpy Basics, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика • Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения • Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы • Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку
К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.
Получите свой Python One-Liners сейчас !!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.