python примеры скриптов для начинающих
Разработка надёжных Python-скриптов
Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно просто забыть о написанном коде и перейти к решению следующей задачи.
Если, скажем, через полгода после того, как был написан некий «одноразовый» скрипт, кто-то спросит его автора о том, почему этот скрипт даёт сбои, об этом может не знать и автор скрипта. Происходит подобное из-за того, что к такому скрипту не была написана документация, из-за использования параметров, жёстко заданных в коде, из-за того, что скрипт ничего не логирует в ходе работы, и из-за отсутствия тестов, которые позволили бы быстро понять причину проблемы.
При этом надо отметить, что превратить скрипт, написанный на скорую руку, в нечто гораздо более качественное, не так уж и сложно. А именно, такой скрипт довольно легко превратить в надёжный и понятный код, которым удобно пользоваться, в код, который просто поддерживать как его автору, так и другим программистам.
Исходный код
Вот исходный код Python-скрипта, который позволяет решить задачу:
Поговорим о том, как его улучшить.
Документация
Я считаю, что полезно писать документацию до написания кода. Это упрощает работу и помогает не затягивать создание документации до бесконечности. Документацию к скрипту можно поместить в его верхнюю часть. Например, она может выглядеть так:
В первой строке даётся краткое описание цели скрипта. В оставшихся абзацах содержатся дополнительные сведения о том, что именно делает скрипт.
Аргументы командной строки
Следующей задачей по улучшению скрипта станет замена значений, жёстко заданных в коде, на документированные значения, передаваемые скрипту через аргументы командной строки. Реализовать это можно с использованием модуля argparse. В нашем примере мы предлагаем пользователю указать диапазон чисел и указать значения для «fizz» и «buzz», используемые при проверке чисел из указанного диапазона.
Модуль argparse — это весьма мощный инструмент. Если вы с ним не знакомы — вам полезно будет просмотреть документацию по нему. Мне, в частности, нравятся его возможности по определению подкоманд и групп аргументов.
Логирование
Если оснастить скрипт возможностями по выводу некоей информации в ходе его выполнения — это окажется приятным дополнением к его функционалу. Для этой цели хорошо подходит модуль logging. Для начала опишем объект, реализующий логирование:
Добавим в код проекта следующую функцию для настройки логирования:
Основной код скрипта при этом изменится так:
Тесты
Модульные тесты — это полезнейшее средство для проверки того, ведёт ли себя приложения так, как нужно. В скриптах модульные тесты используют нечасто, но их включение в скрипты значительно улучшает надёжность кода. Преобразуем код, находящийся внутри цикла, в функцию, и опишем несколько интерактивных примеров её использования в её документации:
Проверить правильность работы функции можно с помощью pytest :
В случае возникновения ошибки pytest выведет сообщение, указывающее на расположение соответствующего кода и на суть проблемы:
Модульные тесты можно писать и в виде обычного кода. Представим, что нам нужно протестировать следующую функцию:
В конце скрипта добавим следующие модульные тесты, использующие возможности pytest по использованию параметризованных тестовых функций:
Если произойдёт ошибка — pytest даст полезные сведения о том, что случилось:
Итоги
Сделать 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 считается одним из наиболее перспективных для написания кода, используемого в различных приложениях. Модули на нем встраиваются в сайты и инструменты для парсинга данных в интернете. На его базе даже разрабатываются видеоигры и настольные программы, так что вариант достоит изучения, чтобы оставаться востребованным специалистом в IT-сфере.
Что такое Python
Это высокоуровневый язык, отличающийся от того же Java простотой синтаксиса. Осваивать его легко благодаря схожести с обычным английским. Код понимает даже обычный пользователь, не владеющий искусством программирования. Вложенность обозначается отступами, что упрощает читаемость и обучение для новичков.
Есть и другие преимущества:
Написанный код не нужно компилировать, он начинает работать сразу после запуска. Благодаря этому легко проверять каждую корректировку программы, которых набираются десятки во время отладки приложения. Такие особенности привели к тому, что в прошлом году Python оказался на 10% популярнее вездесущего Java.
Работа с интерпретатором в Linux
Интерпретатор Питона без проблем запускается в любой среде. Например, в Linux применяется команда для консоли:
После ее ввода откроется приглашение и отобразится текущая версия Python. Сейчас распространены релизы под номерами 2 и 3. Именно на них разработана масса библиотек, используемых кодерами для сборки собственных программ. Третья версия имеет расширенный набор функций, но на второй написано слишком много модулей, поэтому в дистрибутиве поставляются сразу обе.
По умолчанию запускается релиз v2, для запуска v3 требуется указать следующее:
Если обучение происходит «с нуля», есть смысл за основу брать третью версию. Вторую осваивать в процессе оттачивания мастерства, например, если пришлось на практике разбираться в «чужом» коде. Или когда готовые модули написаны на старой версии и нет времени/желания переделывать их на новый лад (выгоднее сослаться на уже отлаженный код).
Установка Python на Windows
Пакет для поддержки Питона нужно скачать с официального сайта разработчика по ссылке. Скачивая его на сторонних ресурсах, нет гарантии, что дистрибутив будет без вирусов. Важно и выбрать правильную платформу 32-bit или 64-bit. Портал представляет сразу все выпущенные релизы, ориентироваться следует на последние.
После загрузки дистрибутив надо установить, как и любую другую программу. Путем последовательного нажатия кнопки Next запускается процесс инсталляции. Вручную изменять те или иные параметры имеет смысл лишь при наличии опыта и понимания особенностей языка.
После установки скачанного дистрибутива на рабочем столе Windows появляется ярлык для запуска программы IDLE (среды разработки на языке Питон). Внешне рабочее окно схоже с тем, которое видят пользователи Linux.
Операции со строками
Изучение проще начинать с простейших примеров базовых операций вроде операций со строками, числами, датой и временем, файловой системой. И только после освоения элементарных вещей приступать к более сложным решениям.
Примеры операций со строками:
Объединение с преобразованием (с числом или логическим значением):
Каждый из примеров рекомендуется внести в интерпретатор и посмотреть на результат. Понятно, что такие пробы ни к чему не приведут без теоретической основы. В ее качестве рекомендуется взять книги «Программируем на Python» Майкла Доусона и «Hello World. Занимательное программирование» Картера и Уоррен Сэнд. Также будут полезны «Изучаем Python» Марца Лутца и «Python – к вершинам мастерства» Лучано Рамальо.
Избыток информации на начальном этапе пойдет только на пользу, ведь новичок еще не определил для себя специализацию, поэтому стоит взяться за все доступные основы.
Синтаксис Python
Как только первые примеры были разобраны и изучено их исполнение в интерпретаторе, приходит время для углубления знаний. Так, считается нормой использовать минимальный отступ в 4 пробела вместо 1 (или знак табуляции). В пределах одного уровня вложенности они должны оставаться на одном уровне.
В конце каждой строки ничего не ставится. Она «сама по себе» является концом инструкции. Так что допускается «забыть» про различные «точки с запятой» и спокойно программировать без лишних телодвижений. Вложенные инструкции пишутся вслед за двоеточием, расположенным в строке над ними. Если инструкции располагаются в одну строку, они разделяются точкой с запятой.
Почему моя программа не работает?
Ошибки при создании кода будут, особенно в начале изучения Python. Главное, научиться верно их истолковывать. Такой подход поможет быстрее избавляться от них, вплоть до приобретения навыка писать код без «косяков». Чтобы понять причину ошибки, достаточно на этапе проверки запустить программу через IDLE или консоль. Тогда пользователь увидит сообщения, которые укажут, где искать ошибку.
Чаще всего встречаются проблемы с запуском программ на Python 2. Как правило, причиной становятся забытые знаки препинания. Меньше ошибок возникает при использовании готовых библиотек, уже отлаженных разработчиками и проверенными другими кодерами.
Шпаргалки по Python — хитрости которые вы не используете!
Многие люди начинают переезжать с версии 2 на 3 из-за Python EOL (Поддержка Python 2.7 прекратиться с 2020 года). К сожалению, часто Python 3 выглядит как Python 2 со скобками. В статье я покажу несколько примеров существующих функций, которыми вы можете пользоваться только в Python 3, с надеждой на то, что это поможет решать ваши текущие и будущие задачи.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Все примеры написаны в Python 3.7 и каждая функция содержит минимальную версию Python для этой функции.
F-строки (Python 3.6+)
Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.
Pathlib (Python 3.4+)
F-строки — это отличное решение, но некоторые строки, такие как пути файлов, имеют свои собственные библиотеки, которые заметно упрощают работу. Python 3 предоставляет pathlib в качестве удобной абстракции для работы с путями файлов.
Подсказки типов | Ожидание типа | Type hinting (Python 3.5+)
Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет. Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.
Перечисления enum (Python 3.4+)
Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Перечисление — это набор символических имен (членов), связанных уникальным, постоянным значением. С перечислением, члены можно сравнить по идентичности, а само перечисление может повторяться.
Встроенный LRU кэш (Python 3.2+)
Внизу показана простая функция Фибоначчи, которая, как мы знаем, выиграет от кэширования, так как выполняет одну и ту же работу несколько раз через рекурсию.
Теперь мы можем использовать lru_cache для оптимизации (эта техника оптимизации называется меморизация). Время выполнения варьирует от секунд до наносекунд.
Повторяемая расширенная распаковка (Python 3.0+)
Здесь код будет говорить сам за себя (документация):
Классы данных (Python 3.7+)
Та же реализация класса Armor при помощи классов данных.
Пространства имен (Python 3.3+)
Один из способов структуризации кода Python заключается в пакетах (папки с файлом __init__.py ). Пример ниже предоставлен официальной документацией Python.
Впрочем, как многие пользователи заметили, это может быть не так просто, как я указал в этом разделе. Согласно спецификации 420 в PEP — файл __init__.py все еще может понадобиться для обычных пакетов, удаление его из структуры папки превратит его в пакет пространства имен, который включает в себя дополнительные ограничения, официальная документация нативных пакетов пространств имен показывают хорошие примеры тому, а также в них озвучиваются названия всех ограничений.
Подведем итоги
Как и практически любой другой список в интернете, этот нельзя назвать завершенным. Надеюсь в этой статье вы нашли хотя бы одну функцию Python 3, которой вы ранее не пользовались, и это поможет вам писать более чистый и интуитивный код.
Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.
E-mail: vasile.buldumac@ati.utm.md
Образование
Universitatea Tehnică a Moldovei (utm.md)
🐍 Самоучитель для начинающих: как освоить Python с нуля за 30 минут?
Прочитав статью, вы познакомитесь с особенностями языка Python, основными типами данных, условными операторы, циклами и работой с файлами. В заключении приведена подборка литературы и каналов на YouTube, а также бесплатных курсов.
Установка Python
Python в Ubuntu предустановлен. Чтобы узнать версию Python, откроем терминал комбинацией клавиш Ctrl + Alt + T и введем следующую команду:
Для Windows нужно скачать Python с официального сайта и установить как обычную программу.
Установка редактора кода
Для работы нам понадобится редактор кода (IDE). Самые популярные:
Для установки Atom в Ubuntu введем в терминале:
Рис. 1. Страница установки Atom для Windows
Создание проекта
Создадим проект, в котором будем хранить код и другие файлы. Для этого перейдем во вкладку File → Add Project Folder и выберем любую свободную папку.
Онлайн-редакторы кода
Если под рукой только смартфон, воспользуемся бесплатными онлайн-редакторами кода:
1. Синтаксис
Python использует отступы, чтобы обозначить начало блока кода:
Python выдаст ошибку, если вы пропустите отступ:
Рекомендуется использовать отступ, равный четырем пробелам.
2. Hello, World
Напишем в example.py следующую строчку:
У нас установлен плагин run-python-simply и запустить код мы можем двумя способами:
После запуска кода появится окно терминала с результатом или ошибкой.
‘Hello, World’ – строка (заключена в кавычки).
Python – язык с динамической типизацией, то есть нам не нужно заранее объявлять тип переменной, является ли она строкой, числом и так далее.
О функциях поговорим в конце статьи, сейчас разберемся со строками и другими типами данных.
3. Типы данных
3.1. Строки
Строка – упорядоченная последовательность символов, заключенная в одинарные или двойные кавычки:
Операции со строками
Изменение регистра первого символа к верхнему регистру с помощью метода title() :
Преобразование всех символов к верхнему и нижнему регистру методами upper() и lower() соответственно:
Объединение строк (конкатенация). Строки объединяются с помощью знака сложения + :
Вычисление длины строки. Чтобы определить длину строки воспользуемся встроенной функцией len() (сокращённое от англ. length):
Рис. 2. Доступ к элементу строки по индексу в Python
Для получения элемента по индексу воспользуемся квадратными скобками [] :
В предыдущем примере по индексу мы получали один элемент строки. По срезу можно получить несколько элементов:
Как формируется срез:
Получим с помощью среза последний элемент:
Все элементы, кроме первого:
Все элементы, кроме последнего:
Создание копии строки через срез:
Методом replace() заменим символы в строке:
Преобразование строки в список индивидуальных символов:
3.2. Числа
Целые числа (int) не имеют дробной части:
Число с плавающей точкой (float) имеет дробную часть:
Операции над числами:
Порядок операций. Выражение в скобках будет просчитываться в первую очередь:
3.3. Списки
Список (англ. list) – набор упорядоченных элементов произвольных типов. Списки задаются квадратными скобками [] и содержат объекты любого типа: строки, числа, другие списки и так далее. Элементы можно менять по индексу.
Создадим список animals и выведем его на экран:
Обратимся к второму элементу списка:
Чтобы изменить элемент списка, обратимся к нему по индексу и присвоим новое значение:
Для добавления элемента в конец списка воспользуемся методом append() :
Метод insert() вставляет элемент по индексу:
Для удаления элемента из списка, обратимся к элементу по индексу, используя команду del :
Другой способ удаления – метод pop() :
В двух предыдущих примерах мы удаляли элемент по его индексу. Теперь удалим элемент по его значению с помощью метода remove() :
Чтобы упорядочить список по алфавиту используем метод sort() :
Список в обратном порядке выводится методом reverse() :
Для определения длины списка воспользуемся функцией len() :
3.4. Кортежи
Кортеж (англ. tuple), как и список хранит элементы, только в отличие от списка, элементы кортежа не изменяются. Кортеж задается круглыми скобками () :
Одноэлементный кортеж задается с помощью запятой после первого элемента. Без запятой получим список. Чтобы узнать какой тип данных мы получаем на выходе воспользуемся функцией type() :
Чтобы создать список из элементов кортежа применим функцию list() :
3.5. Словари
Получим по ключам соответствующие значения из словаря dictionary :
Чтобы добавить новую пару «ключ-значение» используем следующую запись словарь[‘новый_ключ’] = новое_значение :
Изменение существующего значения похоже на добавление нового значения словарь[‘существующий_ключ’] = новое_значение :
Командой del можно удалить ключ со значением:
3.6. Множества
Множества – неупорядоченные последовательности не повторяющихся элементов. Множество задается чрез фигурные скобки <> :
Операции над множествами:
3.7. Файлы
example.txt – путь к файлу и его имя. В нашем случае файл расположен в папке с выполняемой программой.
r – режим работы « только чтение».
Попробуем дозаписать числа в конец файла:
numbers – список чисел.
a – режим записи «в конец текстового файла».
\n – перенос на новую строчку.
Без переноса строки результат будет следующий:
4. Ввод данных
Для ввода данных применяется функция input() :
5. Условные инструкции
Оператор if выполняет код в зависимости от условия. Проверим, если число три меньше пяти, то выведем на экран слово true :
elif = else + if – код выполняется, если предыдущее условие ложно, а текущее истинно:
6. Цикл while
Напишем цикл, который 5 раз выведет на экран слово hello :
while – обозначение цикла.
Бесконечный цикл записывается с помощью while True :
7. Цикл for
Цикл for перебирает элементы последовательности:
Второй вариант записи:
8. Функции
a и b – аргументы функции.
return возвращает значение функции.
9. Модули
Модуль – файл, содержащий функции, классы и данные, которые можно использовать в других программах.
Это был импорт отдельной функции. Теперь импортируем весь модуль и обратимся к функции через модуль.имя_функции() :
10. Комментарии
Комментирование кода помогает объяснить логику работы программы. Однострочный комментарий начинается с хеш-символа # :
Многострочный комментарий заключается с обеих сторон в три кавычки:
Литература
Шпаргалки
YouTube-каналы и курсы
Бесплатные курсы на русском и английском языках в YouTube и на образовательных ресурсах:
Python в «Библиотеке Программиста»
Мы кратко познакомились с основными понятиями Python: команды, функции, операторы и типы данных. У этого языка низкий порог вхождения, простой синтаксис, поэтому вероятность освоить его человеку, который никогда не занимался программированием – высокая (по моей субъективной оценке – 90%).
На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, его используют в нейронных сетях и анализе больших данных. Язык можно изучить самостоятельно, но на это придется потратить немало времени. Если вы хотите быстро понять основы программирования на Python, обратите внимание на онлайн-курс «Библиотеки программиста». За 30 уроков (15 теоретических и 15 практических занятий) под руководством практикующих экспертов вы не только изучите основы синтаксиса, но и освоите две интегрированные среды разработки (PyCharm и Jupyter Notebook), работу со словарями, парсинг веб-страниц, создание ботов для Telegram и Instagram, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.