alt=»в Python» width=»453″ height=»323″ />
1. Цепочки операторов сравнения (chaining comparison):
Конечно, вся магия исчезнет если добавить скобки:
2. iter и два параметра
Built-in функция iter возвращает итератор для переданной последовательности. Но если передавать два параметра, то первый должен быть callable-объектом, а второй — результатом вызова первого объекта, при котором нужно прекратить итерацию. Например, читаем из файла до первой пустой строки:
3. Перечисление
Если вы примените enumerate к перечислимому типу, то на выходе получите ещё и индексы:
4. contextlib
Позволяет легко и красиво пользоваться синтаксисом with EXPR as VAR для своих собственных объектов, функций и т. д. Пример из документации:
5. Отладочные скрипты в Python
Вы можете задавать точки останова (breakpoint) при помощи модуля pdb :
Чтобы задать точку останова в любом месте скрипта, напишите там команду pdb.set_trace() . В pdb есть ещё несколько интересных штучек, описанных в документации.
6. Обмен значениями переменных
В 10-ом классе нам на уроке информатике предлагали задачку — обменять местами значения двух переменных, не используя третью. В Python это даже не вопрос:
7. Разворачивание списка/строки
Быстро развернуть список можно следующим образом:
То же самое можно сделать и со строкой:
8. Вложенные list comprehensions
В list comprehensions можно использовать несколько for:
9. rot13, string_escape, unicode_escape кодировки
Супер секретный метод шифрования Rot13:
Далее. Например, есть строка из внешнего источника, при этом в строке есть литералы n, t, r и т.п. Как получить отформатированную строку (по сути, сделать безопасный eval)?
unicode_escape работает аналогично, только с юникодом, а не со строками.
10. Тернарный оператор в Python
Тернарный оператор — это сокращённая форма записи условного выражения if-else. Вот пример использования:
Такой подход позволяет быстро проверить условие, а не писать несколько строчек оператора if . Зачастую это очень удобно, поскольку позволяет писать более компактный код, сохраняя его читабельность.