практика программирования на пайтон
Несколько полезных советов как практиковаться в Python
Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python.
Введение
Изучение Python не сильно отличается от изучения других языков программирования. Один путь для становления профессионалом в Python (или в другом любом языке) в основном зависит от имеющегося опыта и знаний. Это означает, что опытные программисты уже знакомы с основными концепциями программирования, обычные используют разные методы решения задач, когда как новички — нет.
Не смотря ни на что, имеется несколько вещей общих для всех, одна из них — Вам нужно практиковаться, очень много практиковаться!
К счастью, Python имеет широкое, дружелюбное и сообщённое друг с другом сообщество. Это Open-Source проекты которые действительно помогают в разработке.
Имеется много хороших советов о том, как практиковаться Python`у. Эта статья затронет всего 10 из них:
Выберете подходящее окружение
Для начала Вам следует использовать обычный Python 3 и пакетный менеджер, на операционной системе которую Вы используете. Windows, Mac OS, или любой дистрибутив Linux подойдёт для этого. (Даже Android с QPython, хотя возможности ограничены по сравнению с оригинальным Python). Позже Вы можете установить Anaconda на Windows, Mac OS или Linux. Он содержит интерпретатор Python, пакет Conda, зависимости и пакетный менеджер. С помощью него Вы сможете найти много сторонних библиотек которые могут показаться Вам полезными.
Вы должны выбрать нужную IDE (интегрированная среда разработка). Большинство популярных IDE, таких как Visual Studio, VSCode, Emacs, Vim, Sublime Text и др. имеют действительно хорошую поддержку для Python. Если Вам нравятся продукты от JetBrains, Вы можете попробовать использовать PyCharm.
Также в пакет дистрибуции Anaconda включён IDE под названием Spyder.
IPython и Jupyter Notebook хорошие инструменты которые предлагают удобную интерактивную функциональность. Также, имеется интерактивный интерпретатор Python, но Вы можете найти его более полезным для проверки простых кусочков кода, чем написания больших программ.
Также Вы можете посмотреть эту статью чтобы узнать больше о IDE для Python.
Помимо всего прочего, хорошей идеей будет установить и настроить линтеры для Python (Pylint, flake8 и прочие). Они являются маленькими пакетами которые просто подсвечивают проблемы Вашего кода (синтаксические, или связанные с несоблюдением стиля программирования на Python — PEP8).
Удостоверьтесь, что Вы имеете достаточную базу для изучения более сложных вещей
Если Вы хотите обучаться любому языку программирования, Вам нужно изучить хорошо изучить основы, поверх которых Вы будете строить Вашу карьеру в этом языке. Это означает, что Вам нужно по крайней мере знать: основной синтаксис языка, понимать основные концепты программирования, быть знакомыми со стандартными типами и структурами данных и так далее.
Вам следует найти нужную книгу для Вашего уровня о Python.
Duomly предлагает туториал по Python, который Вы можете использовать для изучения этих концептов и даже большего.
Также Вы можете начать с туториала на официальном сайте.
Пишите и улучшайте код
Написание большого количества кода для себя, является неотъемлимой частью изучения языков программирования.
Начните с кода из книг и туториалов. Затем попробуйте модифицировать его, например упростить, или более подходящим для каких-либо целей. После этого, попробуйте написать свои маленькие, но полезные программы.
Но главное, запомните одну из самых важных вещей о программирования: оно не о набирании кода, оно о понимании!
Вы будете делать ошибки. Все программисты их делают. И это вообще не плохо. Самое важное в этом — узнать, что пошло не так и конечно же, не повторять эти ошибки в будущем. Каждый раз, когда Вы получаете и исправляете ошибку, Вы становитесь немного лучшим программистом, чем Вы были раньше.
Иногда, важно вернуться назад к старому коду и попробовать улучшить его. Надеюсь, Вы увидете где Вы стали более лучше чем тогда, когда писали этот код.
Подумайте о проблемах, которые Вы хотели бы решить. В идеале, это те вопросы, которыми Вы увлечены. Эмоциональное вложение обычно улучшает результаты. Начните Ваши маленькие и средние проекты и пробуйте работать над их улучшением как можно чаще. Как только Вы изучите что-то новое, спросите себя, как Вы можете применить это к проблеме, которую вы хотите решить.
Читайте документацию
Документация очень важна в Python. Вам следует сделать привычкой читать её часто. Идеально будет, перед тем как использовать какую-либо существующую функцию, или метод, прочитать документацию о ней.
Документация может содержать больше деталей в некоторых моментах.
Вы можете изучить много нового из документации. Вы можете увидеть как использовать функцию, метод или класс, какие аргументы нужно передавать, что вернёт вызов функции, и так далее. Она также часто содержит связанные примеры, которые могут быть более информативны, а иногда поучительны.
Изучайте более сложные вещи после основ
Однажды, когда Вы будете понимать основы, Вы сможете начать изучать более сложные вещи. Не беспокойтесь, Вы не забудете основы. Они понадобятся Вам всегда.
Такие темы как обработка исключений, распаковка и упаковка аргументов, *args и **kwargs, декораторы, модули и пакеты, ООП и генераторы, часто используются и Вы должны знать и понимать их на хорошем уровне.
Также имеется много продвинутых тем которые нужно изучить. Например магические методы, корутины, асинхронное программирование, многопоточность, мультипроцессность, тестирование и так далее. Это не то, что понадобится Вам в начале. Так, Вы можете начать с чего-то более простого и полезного. Например, Вам нужно мощное средство для манипуляции со строками, Вы можете попробовать регулярные выражение. Если вы работаете над научным проектом, вероятно, Вы найдёте многопроцессность интересной для Вас.
Следите за стандартами, советами и трюками в языке Python
Имеется много специфичных вещей в программировании конкретно для языка Python, которые являются не самой простой задачей для изучения. Повезло, что есть много ресурсов, которые охватывают многие из этих тем.
Официальная документация Python содержит много информации. PEP 20, так же названый Дзеном Python, написанный Тимом Петерсом, обозначает главные принципы Python:
PEP 8, или руководство по написанию кода от Гвидо Ван Россума, B. Warsaw.
Также PEP 257, который обозначает соглашения для строк документации.
Анализируйте исходный код
Python — open-source`ный язык программирования, также как большинство популярных билиотек. Это значит, что Вы можете читать исходный код. Это часто возможно на Github, но есть и другие места где Вы можете это сделать.
Чтение и понимание кода библиотеки позволяет более лучше понимать, как она работает.
В дополнение, Вы можете изучать многое анализируя исходный код других (надеюсь хороших) программистов. Вы можете заимствовать идеи, смотреть на разные пути реализации, изучать новые паттерны, и так далее.
Интересуйтесь библиотеками
Python имеет множество полезных библиотек для разных задач:
регулярные выражения, математика, статистика, генерация случайных чисел, тестирование, итерирование, функциональное программирование, многопоточность и многопроцессность, абстрактные классы и многое другое.
Также имеются некоторые действительно полезные сторонние библиотеки для множества разных научных задач.
Очевидно, Вы не можете изучить как использовать их все, но Вы можете сфокусироваться на нескольких из них, которые кажутся Вам более интересными для Вашей специализации.
Если Вы хотите быть дата сайентистом или заниматься Machine Learning, Вам нужно начать с NumPy, который является основопологающей библиотекой, для манипуляции одно- и много-мерными массивами эффективным и простым путём. Он быстр и включает множество операций с массивами, без явного написания циклов for из Python.
Все эти библиотеки имеют превосходную документацию.
Если Вы хотите заниматься web-программированием, Вы можете изучить и попрактиковаться работать с некоторыми Python фреймворками для бэкенда. Самый популярный из них — Django, имеет большинство нужных возможностей. Это очень удобно для больших веб приложений. С другой стороны — Flask — мощный, гибкий микро-фреймворк с большим количеством дополнений. Django и Flask самые популярные Python веб-фреймворки.
Также Python имеет другие веб-фреймворки, например Pyramid, Bottle, Tornado и так далее.
SQLAlchemy — это пакет которые включает возможность работы с БД в объекто ориентированном стиле. Он часто используется в веб-фреймворках, но также в Data Science.
Станьте частью сообщества
Как уже было сказано, Python имеет большое и дружное сообщество. Вы можете стать его частью. Читайте публикации, комментируйте, спрашивайте, ищите объяснения.
Когда Вы будете иметь достаточный уровень знаний, Вы сможете начать вкладывать свои знания в open-source проекты, или помогать тем, кто пишет статьи или туториалы. Эти вещи очень ценятся сообществом и большинством потенциальных работадателей.
Изучите второй язык программирования
Python это мультипарадигмальный язык программирование, и во многих ситуациях, его хватает.
Но не смотря ни на что, всегда нужно искать преимущества в изучении других языков.
С помощью этого, Вы можете улучшить свои знания в программировании в целом, парадигмах и расширить свой кругозор. Когда Вы изучите один язык, изучение других будет проще. Большинство хороших программистов знают несколько языков.
Если Вы хотите быть веб-программистом, Вам вероятно нужно будет изучить JavaScript. Изучение C хорошо для лучшего понимания базовых концептов программирования, но Вы можете также писать на нём очень быстрые функции для Python. Rust это новый и очень классный язык, который уже имеет хорошую интеграцию с Python
Примеры проектов для практики
Имеется много маленьких проектов, которые Вы можете использовать для изучения Python. Например, попробуйте автоматизировать скучные задачи. Изучение строк, регулярных выражение, и даже библиотеки для шаблонов Jinja, может помочь Вам писать более эффективный код.
Официальный веб-сайт Flask содержит замечательную документацию и туториал, который Вы можете использовать для его изучения.
Doumly Machine Learning туториал имеет инструкции как Вы можете практиковаться в Data Science и machine learning.
Заключение
Вы прочитали несколько советов о том, как практиковаться Python. Надеюсь, они помогут Вам стать Python программистом. Запомните, что нужно много программировать, писать интересные программы, пытаться учиться на ошибках, и конечно же, стать частью сообщества.
22 полезных примера кода на Python
Python — один из самых популярных языков программирования, чрезвычайно полезный и в решении повседневных задач. В этой статье я вкратце расскажу о 22 полезных примерах кода, позволяющих воспользоваться мощью Python.
Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.
1. Получаем гласные
2. Первая буква в верхнем регистре
Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.
3. Печать строки N раз
Этот пример может печатать любую строку n раз без использования циклов Python.
4. Объединяем два словаря
Этот пример выполняет слияние двух словарей в один.
5. Вычисляем время выполнения
Этот пример полезен, когда вам нужно знать, сколько времени требуется для выполнения программы или функции.
6. Обмен значений между переменными
Это быстрый способ обменять местами две переменные без использования третьей.
7. Проверка дубликатов
Это самый быстрый способ проверки наличия повторяющихся значений в списке.
8. Фильтрация значений False
9. Размер в байтах
Этот пример возвращает длину строки в байтах, что удобно, когда вам нужно знать размер строковой переменной.
10. Занятая память
Пример позволяет получить объём памяти, используемой любой переменной в Python.
11. Анаграммы
Этот код полезен для проверки того, является ли строка анаграммой. Анаграмма — это слово, полученное перестановкой букв другого слова.
12. Сортировка списка
Этот пример сортирует список. Сортировка — это часто используемая задача, которую можно реализовать множеством строк кода с циклом, но можно ускорить свою работу при помощи встроенного метода сортировки.
13. Сортировка словаря
14. Получение последнего элемента списка
15. Преобразование разделённого запятыми списка в строку
Этот код преобразует разделённый запятыми список в единую строку. Его удобно использовать, когда нужно объединить весь список со строкой.
16. Проверка палиндромов
Этот пример показывает, как быстро проверить наличие палиндромов.
17. Перемешивание списка
18. Преобразование строки в нижний и верхний регистры
19. Форматирование строки
Этот код позволяет форматировать строку. Под форматированием в Python подразумевается присоединение к строке данных из переменных.
20. Поиск подстроки
Этот пример будет полезен для поиска подстроки в строке. Я реализую его двумя способами, позволяющими не писать много кода.
21. Печать в одной строке
Мы знаем, что функция print выполняет вывод в каждой строке, и если использовать две функции print, они выполнят печать в две строки. Этот пример покажет, как выполнять вывод в той же строке без перехода на новую.
22. Разбиение на фрагменты
Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.
На правах рекламы
Серверы для разработчиков — выбор среди обширного списка предустановленных операционных систем, возможность использовать собственный ISO для установки ОС, огромный выбор тарифных планов и возможность создать собственную конфигурацию в пару кликов, активация любого сервера в течение минуты. Обязательно попробуйте!
Python с абсолютного нуля. Учимся кодить без скучных книжек
Содержание статьи
От редакции
Недавно мы проводили опрос о том, какой курс по Python был бы интереснее читателям. Две первые строчки с большим отрывом в нем заняли варианты «для хакера» и «Python с нуля». Узнав о таком положении дел, мы немедленно заказали статью о том, как начать программировать на Python. Если она будет иметь успех, то может превратиться в целую серию. Отличие нашего подхода — в том, что мы объясняем все живым языком и даем нескучные примеры. В общем, обучение в фирменном стиле «Хакера»!
И, поскольку это эксперимент, статья доступна без платной подписки.
Если у тебя на компе есть современный дистрибутив Linux, то в него уже входит Python 3, а писать первые программы будет удобно в IDLE — простом редакторе кода, который прилагается к Python. В Ubuntu, чтобы установить его, набери в консоли
В Windows при установке Python обязательно отметь на первом экране установщика галочку Add to Path, чтобы можно было запускать python3 из командной строки в любом удобном месте.
Запустив IDLE, зайди в Options → Configure IDLE, перейди на вкладку General и поставь галочку на пункте Open Edit Window, нажми ОK и перезапусти IDLE. Теперь можно писать программы, сохранять их и запускать клавишей F5. Ну что, погнали?
Переменные
А если изначально неизвестно, какие числа надо складывать? Тогда пришлось бы сперва попросить юзера ввести их в консоли и нажать Enter. Давай так и сделаем:
Внутри скобочек у input ты пишешь пояснение для юзера, что конкретно его просят ввести. Но вот беда, по умолчанию все, что вводится через input, считается не числом, а строкой, поэтому, прежде чем складывать количество литров пива, нужно сначала преобразовать введенные строки в числа с помощью функции int().
Вообще, типов переменных много, но суть ты уловил — чтобы производить с переменными какие‑то действия, нужно их сначала привести к одному типу — к строковому, или к числовому, или еще к какому‑нибудь. Если с этим не заморачиваться, Python сложит не числа, а строки и введенные 2 и 3 литра пива в сумме дадут не 5, а целых 23. Хорошо бы так было в реальности!
Вот еще примерчик, рассчитывающий, сколько тебе еще пить пиво, исходя из средней продолжительности жизни в России:
Условия
В основе любой программы лежат условия. В зависимости от того, выполняются они или не выполняются, программа может пойти по одному или другому пути. Представь, ты едешь на машине и смотришь на часы: если уже есть десять вечера, то поворачиваешь домой, если нет, то можно заехать в гости. Точно так же работает и программа: проверяет какое‑то значение и сворачивает туда или сюда и выполняет соответствующий кусочек кода.
Блоки кода в Python отделаются отступами. Отступ на самом деле может быть любым, например некоторые предпочитают использовать вместо четырех пробелов клавишу Tab. Главное — не смешивать в одной программе отступы разного типа. Если уж начал использовать четыре пробела, то используй по всей программе, а то Python будет на тебя ругаться и унижать.
Еще один важный момент здесь — это знак равенства в условии. Он пишется как двойное «равно» ( == ) и этим отличается от присвоения — одинарного «равно».
Функция lower(), прежде чем сравнивать условие, делает все буквы в строке маленькими, потому что глупый юзер может ввести слово YES с горящим Caps Lock, и это надо предусмотреть заранее.
На самом деле lower( ) — не просто функция, а метод класса string (строка). Именно поэтому он вызывается через точку после переменной, которая содержит строку. О классах и методах мы поговорим как‑нибудь в другой раз, а пока просто запомни, что некоторые функции вызываются таким образом.
🐍 Топ-20 бесплатных ресурсов для изучения Python: сохрани это в закладки
Бесплатные курсы и пособия для программистов на Python
Получить теоретические знания и практические навыки проще всего на курсах, притом некоторые из них есть в свободном доступе. Не стоит думать, будто бесплатные курсы – пустая трата времени. Новичкам они помогут получить базовое представление о языке программирования, способах его применения и потенциале развития в профессии.
Программирование на Python
Материал подойдет тем, кто не имеет опыта программирования. Курс содержит 28 уроков, разъясняющих базовые понятие и элементы синтаксиса Python: списки, операторы, циклы, условия, строковые и числовые переменные. Для проверки знаний доступно 27 тестов. В продолжении курса есть еще 19 уроков и 25 тестов с реальными задачи и советами по каждой теме.
Введение в Python
Теоретическая информация по синтаксису, типам коллекций, функциям, операторам и юникоду с проверкой пройденного материала после каждой лекции. Для каждого урока доступно видео с текстовой базой (основные моменты теории и код).
Язык программирования Python: Информация
Подойдет для любителей читать, т.к. в курсе много теоретической информации в виде текста. Рассмотрены библиотеки и форматы данных, а главное – применение Python для создания программ в разных предметных областях.
A Byte of Python
Learnpython.org
Информация для новичков и опытных программистов: основы (функции, классы, операции и т.д.), руководство по базам данных, материалы для продвинутых разработчиков (специализации, карты, многопользовательские аргументы, частичные функции и пр.). Здесь можно проверить знания на практике: написать код, запустить программу и получить отчет по ошибкам.
Codecademy
Изучение Python 2 от фундаментальных знаний до написания кода. Интерактивные занятия с возможностью запустить и проверить код через браузер без дополнительных настроек. Преимущество платформы в отсутствии потребности писать код целиком – необходимо только вносить небольшие изменения и запускать программы.
Udemy
На этом сайте собрано несколько бесплатных курсов c видеоматериалами. Наиболее востребованы следующие:
Educative
Интеграционная текстовая платформа, которая позволяет изучать концепцию и писать код по каждому уроку. Новичку не придется ничего скачивать и настраивать на своем устройстве, все обучение происходит на сайте. В начале курса идет объяснение основ и концепций, по которым придется решать задачи для работы с функциональным программированием и структурами данных.
Coursera
Этот популярный ресурс предлагает несколько учебных программ от специалистов ведущих университетов (INSEAD, Stanford, National University of Singapore и прочие). Стоит обратить внимание на курс от преподавателей Мичиганского университета « Специализация Python для всех », который (среди прочего) включает следующие разделы: « Структуры данных в Python », « Capstone: Retrieving, Processing, and Visualizing Data with Python» и « Using Databases with Python ».
Code School
Бесплатно после регистрации можно получить доступ только на 10 дней, а за дальнейшее обучение нужно заплатить 29$. Материалы курсов рассчитаны опытных разработчиков, которым необходимо повысить уровень знаний.
Codewars
Интерактивный ресурс с собранием функциональных задач, интересными тестами, отображением результатов, проведением дискуссий с коллегами и повышением ранга. Игровой процесс мотивирует быстро щелкать задачки.
Chekio
Игровая платформа, в которой получение новых знаний и навыков кодирования происходит в непринужденном режиме. Творческий подход к обучению и поддержка коллег позволяют достичь желаемых целей в короткие сроки.
w3schools
Для любителей разработки это отличный ресурс, который позволяет проверить знания Python. На сайте можно изучить теоретические основы языка и примеры его использования, а также поупражняться в создании программ по всем представленным материалам.
Сообщества разработчиков программ на Python
Обучение в режиме общения, консультации с коллегами, ответы на конкретные вопросы – все это можно получить в сообществах. Их преимуществом является бесплатная поддержка от начинающих разработчиков и матерых специалистов. Задавать вопросы нужно, четко обозначив тему и расписав требующую решения проблему.
Форум Python Программистов
Профессиональные программисты в сообществе отвечают на вопросы новичков и более опытных разработчиков. Здесь можно быстро получить консультацию по коду, если правильно оформить заголовок и четко сформулировать вопрос.
Pyslackers
Международное сообщество, которое собрало единомышленников по программированию на Python. Общение происходит через сервис Slack, в котором написать и быстро найти любого участника сообщества не составит труда. Общение по тематическим каналам и личная переписка ускорят процесс обучения и решения проблем.
Python-сообщество
Бесплатные видеолекции по программированию на Python
Любителям визуального и голосового восприятия информации в изучении языка программирования помогут видеоролики. Представляем небольшую подборку видеокурсов, в которых лекторы рассказывают об основах языка, а также дают практические рекомендации по разработке приложений.
Изучаем Python – Полный курс для начинающих
Видео англоязычное, но с русскими субтитрами. В длительной (более 4-х часов) лекции собрана информация по установке и настройке Python и PyCharm, показано создание калькулятора и игры. В курсе представлено все – от переменных и списков, до модулей и функций.
Python Tutorial – Python for Beginners
Классы, модули, параметры и другая теория рассмотрена в шестичасовом видео. В конце инструктор Мош разбирает три проекта: по автоматизации, машинному обучению, а также по созданию веб-сайта. Лектор дает материал на хорошем английском, доступны также субтитры на русском языке.
Python Tutorial for Beginners
Плейлист из 220 видео, в котором собраны всевозможные данные для изучающих программирование на Python новичков. Синтаксис, команды, обработка исключений, расширения и все прочее, что нужно для интерактивного обучения.
Google Python Class
19 видео от команды Google Developers с информацией о веб-программировании на Python. Опытные разработчики демонстрируют практическое применение материала, представленного на теоретических курсах Google’s Python Class.
На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, его используют в нейронных сетях и анализе больших данных. Язык можно изучить самостоятельно, но на это придется потратить немало времени. Если вы хотите быстро понять основы программирования на Python, обратите внимание на онлайн-курс «Библиотеки программиста». За 30 уроков (15 теоретических и 15 практических занятий) под руководством практикующих экспертов вы не только изучите основы синтаксиса, но и освоите две интегрированные среды разработки (PyCharm и Jupyter Notebook), работу со словарями, парсинг веб-страниц, создание ботов для Telegram и Instagram, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.