Linux примеры python скрипты

Содержание
  1. Linux примеры python скрипты
  2. Устанавливаем Python на сервер
  3. Создаем виртуальное окружение virtalenv
  4. Запуск Python-скрипта с помощью Сron
  5. Как понять что Cron срабатывает?
  6. Cron срабатывает но Python-скрипт не выполняется
  7. Запуск Python и python-скрипт на компьютере
  8. Где запускать Python-скрипты и как?
  9. Запуск Python-кода интерактивно
  10. Интерактивный режим в Linux
  11. Интерактивный режим в macOS
  12. Интерактивный режим в Windows
  13. Запуск Python-скриптов в интерактивном режиме
  14. Как выполняются Python-скрипты?
  15. Блок-схема выполнения кода интерпретатором
  16. Как запускать Python-скрипты?
  17. Как запускать скрипт в командной строке?
  18. 22 полезных примера кода на Python
  19. 1. Получаем гласные
  20. 2. Первая буква в верхнем регистре
  21. 3. Печать строки N раз
  22. 4. Объединяем два словаря
  23. 5. Вычисляем время выполнения
  24. 6. Обмен значений между переменными
  25. 7. Проверка дубликатов
  26. 8. Фильтрация значений False
  27. 9. Размер в байтах
  28. 10. Занятая память
  29. 11. Анаграммы
  30. 12. Сортировка списка
  31. 13. Сортировка словаря
  32. 14. Получение последнего элемента списка
  33. 15. Преобразование разделённого запятыми списка в строку
  34. 16. Проверка палиндромов
  35. 17. Перемешивание списка
  36. 18. Преобразование строки в нижний и верхний регистры
  37. 19. Форматирование строки
  38. 20. Поиск подстроки
  39. 21. Печать в одной строке
  40. 22. Разбиение на фрагменты
  41. На правах рекламы
  42. Python с абсолютного нуля. Работаем с ОС, изучаем регулярные выражения и функции
  43. Содержание статьи
  44. От редакции
  45. Работаем с файлами
  46. warning
  47. Регулярные выражения
  48. Функции

Linux примеры python скрипты

Я, как настоящий старовер, решил построить «data-pipeline» без коннекторов и DAG-менеджеров. Положив два перста на мышку, началась упорная работа. Разобрался с API рекламных систем, установил драйвер bigquery, залил первую таблицу в датасет. Победа была близка, осталось всё автоматизировать. Я начал разворачивать Airflow, а потом проснулся и вспомнил про cron.

Вспомнив про ранее купленный VPS, куда я деплоил свой tf-idf кластеризатор. Было решено залить скрипт на сервер и настроить его запуск на 6 утра ежедневно.

Cron — это демон, а демон — это программа работающая в фоновом режиме. Ну а если вы программировали на Python — вам должны быть знакомы процессы-демоны. Запуск Cron-задания — это легко, но только в случаях когда мы говорим об выполнении php и bash скриптов. С Python всё иначе.

Устанавливаем Python на сервер

Выполняем, указные команды на примере Ubuntu.

Проверяем успешность установки командой python3.

Создаем виртуальное окружение virtalenv

Следующий шаг — изолировать наш проект в отдельное виртуальное окружение, куда мы будем устанавливать нужные нам библиотеки.

Теперь мы видим рядом в консоли перед строкой приписку (venv) — это значит, что мы в виртуальном окружении.

Запуск Python-скрипта с помощью Сron

Давай потестируем то, что у нас получилось на маленьком скрипте, который будет писать в файл дату и время его активации. Таким образом мы проверим как работает cron. Тестовый скрипт, который мы положим в корень папки проекта, у меня это / home / iakulshin / pipeline, заливаем через файловый менеджер filezilla и прочие, если вы хардкорный девопс-дата-инженер удачи вам с nano. Заливаем скрипт указанный ниже в нашу папку.

Давайте попробуем создать cron задание для тестового запуска. В целом нам будут нужны 2 команды:

Появлеятся файлик с крон задачами в редакторе nano. Наша задача установить задание, которое будет запускать наш скрипт каждую минуту.

Наконец, в файлике test.txt каждую минуту появляется текущая дата, учения завершены, теперь рассмотрим возможные проблемы и способы их устранения.

Как понять что Cron срабатывает?

Чтобы удостовериться, что cron-таск отрабатывает, нам необходимо добавить задачу и обратиться к логам сервера, для этого идем в консоль и пишем следующую команду:

В нем вы увидите следующие записи:

Это означает, что cron срабатывает и воспроизводит команду, которую вы указали после звездочек. Но что делать, если python-скрипт всё еще не работает?

Cron срабатывает но Python-скрипт не выполняется

Самая типичная проблема, которая связана с «холостым» крон-таском — это недоступность библиотек, неверный выбор virtual env и версии python. Способ выбранный выше — это способ к которому я пришел спустя десяток часов поисков и изучения stackoverflow. Что нужно проверить для успешного запуска скрипта:

Возьмите команду, которую собирались добавь в крон и запустите её, это поможет словить ошибки связанные с недоступностью библиотек. В моем случае Скрипт не видел импортируемый файл, это я вылечил добавлением папки в системный путь. Добавляем в скрипты следующий код:

Если скрипт запускается по прямой команде из консоли, но cron всё еще не выполняется, то ошибка 100% в том, что ваш скрипт запускается не из под virtualenv или вы запускаете скрипт из под python не подходящей версии, поэтому проверяем следующее:

  1. Мы перешли в папку со скриптом командой cd
  2. Мы обратились к интерпретатору python3 находящемуся в папке с виртуальным окружением нашего проекта.

В целом данный гайд должен помочь вам разобраться с запуском Python скриптов с помощью Cron. Однако, я оставлю ссылки на полезные треды в stackoverflow, где представлены дополнительные способы решения этой проблемы.

Источник

Запуск Python и python-скрипт на компьютере

Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.

В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.

Где запускать Python-скрипты и как?

Python-код можно запустить одним из следующих способов:

  1. С помощью командной строки операционной системы (shell или терминал);
  2. С помощью конкретной версии Python или Anaconda;
  3. Использовать Crontab;
  4. Запустить код с помощью другого Python-скрипта;
  5. С помощью файлового менеджера;
  6. Использовать интерактивный режим Python;
  7. Использовать IDE или редактор кода.

Запуск Python-кода интерактивно

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Вот как запустить интерактивный режим в разных ОС.

Читайте также:  Личные финансы для линукс

Интерактивный режим в Linux

Откройте терминал. Он должен выглядеть приблизительно вот так :

После нажатия Enter будет запущен интерактивный режим Python.

Интерактивный режим в macOS

На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

Интерактивный режим в Windows

В Windows нужно открыть командную строку и ввести python . После нажатия Enter появится приблизительно следующее:

Запуск Python-скриптов в интерактивном режиме

В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.

Этот код должен выводить целые числа от 0 до 5. В данном случае вывод — все, что появилось после print(i) .

Для выхода из интерактивного режима нужно написать следующее:

И нажать Enter. Вы вернетесь в терминал, из которого и начинали.

Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.

Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.

Как выполняются Python-скрипты?

Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.

При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.

Но и это еще не все.

Блок-схема выполнения кода интерпретатором

  • Шаг 1: скрипт или .py-файл компилируется, и из него генерируются бинарные данные. Готовый файл имеет расширение .pyc или .pyo.
  • Шаг 2: генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.

Это набор инструкций, которые приводят к финальному результату.

Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.

Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.

Как запускать Python-скрипты?

Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.

Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:

  • Создать Python-скрипт из командной строки и сохранить его,
  • Создать Python-скрипт с помощью текстового редактора или IDE и сохранить его. Просто создайте файл, добавьте код и сохраните как «python_script.py»

Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.

Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):

После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.

Как запускать скрипт в командной строке?

Скрипты можно запустить и с помощью команды Python прямо в интерфейсе терминала. Для этого нужно убедиться, что вы указали путь до него или находитесь в той же папке. Для выполнения скрипта (python_script.py) откройте командную строку и напишите python3 python_script.py .

Замените python3 на python , если хотите использовать версию Python2.x.

Источник

22 полезных примера кода на Python

Python — один из самых популярных языков программирования, чрезвычайно полезный и в решении повседневных задач. В этой статье я вкратце расскажу о 22 полезных примерах кода, позволяющих воспользоваться мощью Python.

Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.

1. Получаем гласные

Этот пример возвращает в строке найденные гласные «a e i o u» . Это может оказаться полезным при поиске или обнаружении гласных.

2. Первая буква в верхнем регистре

Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.

3. Печать строки N раз

Этот пример может печатать любую строку n раз без использования циклов Python.

4. Объединяем два словаря

Этот пример выполняет слияние двух словарей в один.

5. Вычисляем время выполнения

Этот пример полезен, когда вам нужно знать, сколько времени требуется для выполнения программы или функции.

6. Обмен значений между переменными

Это быстрый способ обменять местами две переменные без использования третьей.

7. Проверка дубликатов

Это самый быстрый способ проверки наличия повторяющихся значений в списке.

8. Фильтрация значений False

Этот пример используется для устранения всех ложных значений из списка, например false, 0, None, » » .

9. Размер в байтах

Этот пример возвращает длину строки в байтах, что удобно, когда вам нужно знать размер строковой переменной.

10. Занятая память

Пример позволяет получить объём памяти, используемой любой переменной в Python.

11. Анаграммы

Этот код полезен для проверки того, является ли строка анаграммой. Анаграмма — это слово, полученное перестановкой букв другого слова.

12. Сортировка списка

Этот пример сортирует список. Сортировка — это часто используемая задача, которую можно реализовать множеством строк кода с циклом, но можно ускорить свою работу при помощи встроенного метода сортировки.

13. Сортировка словаря

14. Получение последнего элемента списка

15. Преобразование разделённого запятыми списка в строку

Этот код преобразует разделённый запятыми список в единую строку. Его удобно использовать, когда нужно объединить весь список со строкой.

16. Проверка палиндромов

Этот пример показывает, как быстро проверить наличие палиндромов.

17. Перемешивание списка

18. Преобразование строки в нижний и верхний регистры

19. Форматирование строки

Этот код позволяет форматировать строку. Под форматированием в Python подразумевается присоединение к строке данных из переменных.

20. Поиск подстроки

Этот пример будет полезен для поиска подстроки в строке. Я реализую его двумя способами, позволяющими не писать много кода.

Читайте также:  Не работает значок wifi windows 10

21. Печать в одной строке

Мы знаем, что функция print выполняет вывод в каждой строке, и если использовать две функции print, они выполнят печать в две строки. Этот пример покажет, как выполнять вывод в той же строке без перехода на новую.

22. Разбиение на фрагменты

Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.

На правах рекламы

Серверы для разработчиков — выбор среди обширного списка предустановленных операционных систем, возможность использовать собственный ISO для установки ОС, огромный выбор тарифных планов и возможность создать собственную конфигурацию в пару кликов, активация любого сервера в течение минуты. Обязательно попробуйте!

Источник

Python с абсолютного нуля. Работаем с ОС, изучаем регулярные выражения и функции

Содержание статьи

От редакции

Эта статья — часть цик­ла «Python с абсо­лют­ного нуля», где мы рас­ска­зыва­ем об азах Python в нашем фир­менном нес­кучном сти­ле. Ты можешь читать их по поряд­ку или выбирать какие‑то области, которые хотел бы под­тянуть.

Пер­вые два уро­ка дос­тупны целиком без плат­ной под­писки. Этот — поч­ти целиком: за исклю­чени­ем пос­ледне­го при­мера и домаш­него задания.

Работаем с файлами

Нач­нем, как всег­да, с нес­ложных вещей. В Python есть модуль с лаконич­ным наз­вани­ем os , который (ты не поверишь!) пред­назна­чен для вза­имо­дей­ствия прог­раммы с опе­раци­онной сис­темой, в том чис­ле для управле­ния фай­лами.

Пер­вым делом, конеч­но, нуж­но импорти­ровать его в начале нашего скрип­та:

И теперь нам откры­вают­ся раз­ные инте­рес­ные воз­можнос­ти. К при­меру, мы можем получить путь к текущей пап­ке. Сна­чала она сов­пада­ет с той, в которой ты был при запус­ке скрип­та (даже если сам скрипт находит­ся где‑то в дру­гом мес­те), но по ходу исполне­ния прог­раммы мы можем менять это зна­чение при помощи фун­кции os. chdir( ) .

Ес­ли ты работа­ешь в Windows, то в пути к фай­лу или пап­ке перед откры­вающей кавыч­кой ука­зывай бук­ву r (что озна­чает raw) или вмес­то одной косой чер­ты в пути ставь две.

Поп­робу­ем получить спи­сок фай­лов с рас­ширени­ем .py, находя­щих­ся в текущей дирек­тории. Для это­го исполь­зуем модули os и fnmatch.

Мо­дуль fnmatch поз­воля­ет искать в стро­ках опре­делен­ный текст, под­ходящий по мас­ке к задан­ному шаб­лону:

  • * заменя­ет любое количес­тво любых сим­волов;
  • ? заменя­ет один любой сим­вол;
  • [ seq] заменя­ет любые сим­волы из пос­ледова­тель­нос­ти в квад­ратных скоб­ках;
  • [! seq] заменя­ет любые сим­волы, кро­ме тех, что при­сутс­тву­ют в квад­ратных скоб­ках.

Да­вай без­жалос­тно уда­лим какой‑нибудь файл:

А теперь соз­дадим пап­ку по ука­зан­ному пути и сра­зу же уда­лим ее. Для это­го при­годит­ся модуль shutil, где есть фун­кция rmtree( ) , которая уда­ляет пап­ку вмес­те с содер­жимым.

До­пус­тим, ты хочешь получить спи­сок всех фай­лов, содер­жащих­ся в пап­ках по ука­зан­ному пути (учи­тывая вло­жен­ные пап­ки тоже), что­бы най­ти что‑то инте­рес­ное. Скрипт будет выг­лядеть сле­дующим обра­зом:

warning

Будь осто­рожен — скрипт в таком виде обша­рит весь диск D. Если он у тебя есть и там мно­го хла­ма, то про­цесс может затянуть­ся.

Фун­кция walk() модуля os при­нима­ет один обя­затель­ный аргу­мент — имя катало­га. Она пос­ледова­тель­но про­ходит все вло­жен­ные катало­ги и воз­вра­щает объ­ект‑генера­тор, из которо­го получа­ют:

  • ад­рес оче­ред­ного катало­га в виде стро­ки;
  • спи­сок имен под­катало­гов пер­вого уров­ня вло­жен­ности для дан­ного катало­га;
  • спи­сок имен фай­лов дан­ного катало­га.

Ге­нера­тор — это объ­ект, который сра­зу при соз­дании не вычис­ляет зна­чения всех сво­их эле­мен­тов. Этим генера­торы отли­чают­ся от спис­ков — те хра­нят в памяти все свои эле­мен­ты, и уда­лить их мож­но толь­ко прог­рам­мно. Вычис­ления с помощью генера­торов называ­ются ленивы­ми, они эко­номят память. Под­робнее мы рас­смот­рим генера­торы в сле­дующих уро­ках.

Сей­час покажу, как узнать раз­мер любого фай­ла, а так­же дату его модифи­кации.

Для опе­раци­онных сис­тем Unix 1 янва­ря 1970, 00:00:00 (UTC) — точ­ка отсче­та вре­мени, или «начало эпо­хи». Чаще все­го вре­мя в компь­юте­ре вычис­ляет­ся в виде про­шед­ших с это­го момен­та секунд и лишь затем перево­дит­ся в удоб­ный для челове­ка вид.

Да­вай пошутим над юзе­ром: соз­дадим какой‑нибудь файл и будем пос­тоян­но его откры­вать с помощью той прог­раммы, которой этот файл обыч­но откры­вает­ся в сис­теме:

Ни­же при­веден спи­сок еще некото­рых полез­ных команд:

  • os. path. basename( ‘путь’) — воз­вра­щает наз­вание фай­ла или пап­ки в кон­це пути;
  • os. path. dirname( ‘путь’) — воз­вра­щает родитель­ский путь к объ­екту пути;
  • os. path. splitext( ‘путь’) — раз­деля­ет путь на путь и рас­ширение фай­ла;
  • os. path. exists( ‘путь’) — сущес­тву­ет ли путь до фай­ла или пап­ки;
  • os. path. isfile( ‘путь’) — явля­ется ли объ­ект пути фай­лом (сущес­тву­ющим);
  • os. path. isdir( ‘путь’) — явля­ется ли объ­ект пути пап­кой (сущес­тву­ющей).

Регулярные выражения

Ре­гуляр­ные выраже­ния — это спе­циаль­ные шаб­лоны для поис­ка и замены строк в тек­сте. Вооб­ще говоря, их впол­не мож­но счи­тать самос­тоятель­ным язы­ком, и его изу­чение выходит за рам­ки это­го цик­ла. Мы прой­дем­ся по самым осно­вам и по исполь­зованию регуля­рок в Python.

Под­робнее о регэк­спах ты можешь почитать в до­кумен­тации Python, в Ви­кипе­дии или в кни­ге Джеф­фри Фрид­ла, которая так и называ­ется — «Ре­гуляр­ные выраже­ния».

Мы не раз писали о полез­ных сай­тах, которые помога­ют работать с регуляр­ными выраже­ниями: CyberChef, RegExr, txt2re. Помимо это­го, можешь обра­тить вни­мание на сер­вис regex101.com и сайт RegexOne с инте­рак­тивным тре­наже­ром.

За работу с регуляр­ными выраже­ниями в Python отве­чает модуль re. Пер­вым делом импорти­руем его.

В качес­тве прос­тей­шего пат­терна мы можем исполь­зовать какое‑нибудь сло­во. Пусть по тра­диции это будет «пиво»:

Ко­ман­да re. search( pattern, string) ищет в тек­сте string пер­вое вхож­дение шаб­лона pattern и воз­вра­щает груп­пу строк, дос­туп к которым мож­но получить через метод . group( ) . Но коман­да search ищет толь­ко пер­вое вхож­дение шаб­лона. Поэто­му в нашем слу­чае вер­нется все­го один резуль­тат — сло­во «пиво», нес­мотря на то что в нашем тек­сте оно при­сутс­тву­ет дваж­ды.

Читайте также:  Как сбросить настройки линукс минт по умолчанию

Что­бы вер­нуть все вхож­дения шаб­лона в текст, исполь­зует­ся коман­да re. findall( pattern, string) . Эта коман­да вер­нет спи­сок строк, которые при­сутс­тву­ют в тек­сте и сов­пада­ют с шаб­лоном.

Об­рати вни­мание, что шаб­лоны в регуляр­ных выраже­ниях име­ют буков­ку r перед началом стро­ки. Это так называ­емые сырые стро­ки, в которых не работа­ет сим­вол экра­ниро­вания с помощью обратно­го сле­ша \ . При этом «сырая» стро­ка не может закан­чивать­ся этим сим­волом.

В пре­дыду­щих двух при­мерах прог­рамм в качес­тве шаб­лона pattern для поис­ка строк ты исполь­зовал прос­то какое‑то сло­во. Но мощь регуляр­ных выраже­ний не в этом. Ты можешь заменять час­ти шаб­лона спе­циаль­ными сим­волами, что­бы под шаб­лон под­ходили не толь­ко кон­крет­ные сло­ва, но и самые раз­ные стро­ки.

Да­вай, нап­ример, поп­робу­ем най­ти в тек­сте все сло­ва, которые начина­ются с «пи». Для это­го исполь­зуем спе­циаль­ный сим­вол \ b — он озна­чает «начало сло­ва». Сра­зу пос­ле него ука­зыва­ем, с чего дол­жно начинать­ся сло­во, и напишем спе­циаль­ный сим­вол w , который озна­чает, что даль­ше в шаб­лоне дол­жны идти какие‑то бук­вы (плюс озна­чает, что их может быть одна или боль­ше) до тех пор, пока не встре­тит­ся небук­венный сим­вол (нап­ример, про­бел или знак пре­пина­ния). Шаб­лон будет выг­лядеть так: r»\ bпи\ w+» .

Да­вай поп­робу­ем выпол­нить чуть более слож­ную задачу. Най­дем в тек­сте все email с доменом mail. ru , если они там есть.

Как видишь, мы исполь­зовали тот же трюк, что и в прош­лый раз, — написа­ли спе­циаль­ный сим­вол \ b , что­бы обоз­начить начало сло­ва, потом \ w+ , что зна­чит «одна или боль­ше букв», а затем @mail. ru , заэк­раниро­вав точ­ку, пос­коль­ку ина­че она будет озна­чать «любой сим­вол».

Час­то быва­ет нуж­но най­ти какой‑то эле­мент стро­ки, окру­жен­ный дву­мя дру­гими эле­мен­тами. Нап­ример, это может быть URL. Что­бы выделить ту часть шаб­лона, которую нуж­но вер­нуть, исполь­зуют­ся скоб­ки. При­веду при­мер, в котором ты получишь все адре­са ссы­лок из какого‑то кусоч­ка кода на HTML.

В коде выше исполь­зовал­ся пат­терн r’href=»(. +?) » — в этом шаб­лоне иско­мая стро­ка начина­ется с href=» и закан­чива­ется еще одной двой­ной кавыч­кой. Скоб­ки нуж­ны для того, что­бы ука­зать, какую часть под­ходящей под шаб­лон стро­ки ты хочешь получить в перемен­ную result . Точ­ка и плюс внут­ри ско­бок ука­зыва­ют, что внут­ри кавычек могут быть любые сим­волы (кро­ме сим­вола новой стро­ки). Знак воп­роса озна­чает, что нуж­но оста­новить­ся перед пер­вой же встре­чен­ной кавыч­кой.

Знак воп­роса в регуляр­ных выраже­ниях исполь­зует­ся в двух нем­ного раз­ных смыс­лах. Если он идет пос­ле одно­го сим­вола, это зна­чит, что сим­вол может при­сутс­тво­вать или не при­сутс­тво­вать в стро­ке. Если же воп­роситель­ный знак идет пос­ле груп­пы сим­волов, это озна­чает «нежад­ный» (non-greedy) режим: такая регуляр­ка будет ста­рать­ся зах­ватить как мож­но мень­ше сим­волов.

Мы можем не толь­ко искать стро­ки, но и заменять их чем‑то дру­гим. Нап­ример, давай поп­робу­ем уда­лить из HTML-кода все теги. Для это­го исполь­зует­ся коман­да re. sub( pattern, ‘чем заменять’, string) .

Прог­рамма напеча­тает стро­ку уже без тегов, так как мы замени­ли их пус­той стро­кой.

Ре­гуляр­ные выраже­ния — очень мощ­ная шту­ка. Осво­ив их, ты смо­жешь делать со стро­ками поч­ти все, что угод­но, а в сочета­нии с кодом на Python — бук­валь­но что угод­но. Для начала же можешь поэк­спе­римен­тировать и изме­нить какие‑то из при­веден­ных рецеп­тов.

Функции

Приш­ла пора под­робнее погово­рить о фун­кци­ях. Мы уже неод­нократ­но вызыва­ли раз­ные фун­кции — как встро­енные в Python (нап­ример, print( ) ), так и из под­клю­чаемых модулей (нап­ример, urllib. request( ) ). Но что такое фун­кция изнутри и как их делать самос­тоятель­но?

Пред­ставь, что у тебя есть какой‑то набор команд, которые нуж­но выпол­нять нес­коль­ко раз, изме­няя лишь вход­ные дан­ные. Такие бло­ки команд обыч­но выносят в отдель­ные кусоч­ки прог­раммы.

В объ­ектно ори­енти­рован­ном прог­рамми­рова­нии фун­кции явля­ются метода­ми какого‑либо клас­са и пишут­ся через точ­ку от его наз­вания.

У фун­кции могут быть вход­ные парамет­ры — это одна или нес­коль­ко перемен­ных, которые пишут­ся в скоб­ках пос­ле име­ни фун­кции. При вызове фун­кции ты можешь передать ей аргу­мен­ты для этих парамет­ров. Некото­рые из парамет­ров могут быть необя­затель­ными или иметь зна­чение по умол­чанию — на слу­чай, если его не переда­дут.

Объ­явле­ние фун­кции начина­ется с клю­чево­го сло­ва def , далее сле­дует имя фун­кции, парамет­ры в скоб­ках и прог­рам­мный код, отде­лен­ный четырь­мя про­бела­ми. Фун­кция может воз­вра­щать одно или нес­коль­ко зна­чений с помощью клю­чево­го сло­ва return . Оно, кста­ти, прек­раща­ет работу фун­кции, и, если за ним идут какие‑то коман­ды, они будут про­пуще­ны.

Для при­мера раз­берем прос­тей­шую фун­кцию, которая будет при­нимать в качес­тве аргу­мен­тов два любых чис­ла и перем­ножать их, воз­вра­щая резуль­тат умно­жения. Назовем ее umn.

Те­перь, ког­да ты опи­сал фун­кцию, далее в этой же прог­рамме мож­но ее вызывать.

Иног­да надо задать один из парамет­ров как необя­затель­ный, уста­новив для него зна­чение по умол­чанию.

Те­перь если ты вызовешь фун­кцию и не передашь ей вто­рой аргу­мент, то она прос­то будет счи­тать его рав­ным десяти, то есть будет умно­жать любое передан­ное чис­ло на десять.

Нес­мотря на то что параметр b в дан­ном слу­чае равен по умол­чанию 10 и необя­зате­лен для переда­чи в качес­тве вто­рого аргу­мен­та, ты по‑преж­нему можешь переда­вать вто­рой аргу­мент, если это будет нуж­но, и тог­да в качес­тве b будет исполь­зовано не 10 , а передан­ное зна­чение.

Внут­ри прог­раммы мы можем вызывать соз­данную нами фун­кцию сколь­ко угод­но раз.

Да­вай соз­дадим прог­рамму, которая будет счи­тать при­бав­ку к зар­пла­те за каж­дую уяз­вимость, которую хакер нашел на работе. У каж­дого хакера будет своя зар­пла­та, в зависи­мос­ти от его ран­га, но начис­ление при­бав­ки для всех работа­ет по прин­ципу «+2% к базовой зар­пла­те за уяз­вимость, если таких уяз­вимос­тей най­дено боль­ше чем три».

Сде­лаем фун­кцию, которая при­нима­ет в качес­тве аргу­мен­тов раз­мер зар­пла­ты сот­рудни­ка и количес­тво най­ден­ных уяз­вимос­тей. Для округле­ния резуль­тата исполь­зуем фун­кцию round( ) , которая округлит при­бав­ку до целого чис­ла.

Источник

Оцените статью