На этом шаге мы рассмотрим, что такое однострочники и чем полезно их изучение.
Материал этих шагов поможет вам стать настоящим экспертом по языку Python. Для этого мы сосредоточимся на написании однострочников: лаконичных, удобных программ, занимающих всего одну строку кода на Python. Благодаря им вы сможете писать и читать код на Python быстрее и лучше разберетесь в этом языке.
Кроме того, можно назвать еще пять причин, по которым однострочники Python помогут вам повысить эффективность работы и заслуживают изучения.
Во-первых, совершенствуя свои базовые навыки работы с языком Python, вы сможете побороть множество мешающих вам мелких недостатков, присущих многим программистам. Не имея досконального понимания основ, сложно двигаться дальше. Отдельные строки кода - основные "кирпичики" любой программы. Понимание этих "кирпичиков" помогает не растеряться и по-настоящему овладеть более сложными концепциями.
Во-вторых, вы научитесь использовать на все 100% чрезвычайно популярные библиотеки Python, например, предназначенные для науки о данных (data science) и машинного обучения. Здесь мы рассмотрим различные аспекты Python, от регулярных выражений до машинного обучения. Подобный подход позволяет рассмотреть широкий диапазон возможных приложений Python, а также научить использовать богатые возможности этих библиотек.
В-третьих, вы научитесь писать код в стиле Python. Начинающие программисты на Python, особенно работавшие ранее с другими языками программирования, зачастую пишут код в несвойственном Python стиле. Мы рассмотрим такие присущие Python понятия, как списковое включение, множественное присваивание и срезы. Вы научитесь писать удобочитаемый код, который сможете использовать совместно с другими программистами, работающими в этой сфере.
В-четвертых, изучение однострочников Python придает мысли ясность и лаконичность. Когда на счету каждый символ, нет места маловразумительному и бессистемному написанию кода.
В-пятых, новые навыки написания однострочников дадут вам возможность разобраться в переусложненных базах кода Python, а также произвести впечатление как на друзей, так и на будущих работодателей при собеседовании. Решать сложные программистские задачи с помощью одной строки кода интересно. И вы не одиноки: онлайн-сообщество энтузиастов Python постоянно соревнуется, кто создаст самые лаконичные и близкие стилю Python решения разнообразных практических (и не совсем практических) задач.
Рассмотрим один однострочник Python. Не волнуйтесь, если не совсем понимаете, что в нем происходит. Мы в дальнейшем вернемся к нему.
q = lambda l: q((1)[x for x in l[1:] if x <= l[0]]) + [l[0]] + q([x for x in l if x > l[0]]) if l else []
Этот однострочник - изящный лаконичный пример выражения известного алгоритма быстрой сортировки (Quicksort), хотя начинающим и не слишком опытным программистам на Python будет непросто уловить его смысл.
В основе однострочников Python часто лежат другие однострочники, так что сложность рассматриваемых однострочников будет расти. Мы начнем с простых однострочников, которые далее станут основой для других, более сложных. Например, предыдущий однострочник для быстрой сортировки - сложный и длинный, но в его основе лежит более простая идея спискового включения (1). Вот более простое списковое включение, предназначенное для создания списка квадратов чисел:
lst = [x ** 2 for x in range(10)]
Можно разбить этот однострочник на еще более простые, чтобы познакомиться с важнейшими базовыми понятиями Python, например присваиванием переменных, математическими операторами, структурами данных, циклами for, операторами принадлежности и функцией range(), - и все это в одной строке!
Учтите, что базовые не значит тривиальные. Все однострочники, о которых мы будем говорить, полезны, и каждый раздел посвящена какой-либо отдельной сфере или дисциплине компьютерных наук, что позволяет продемонстрировать весь спектр возможностей Python.
Со следующего шага мы повспоминаем основные конструкции языка Python.