Pull to refresh
3
0
Send message

Парсим на Python: Pyparsing для новичков

Reading time6 min
Views187K
Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

import matplotlib.pyplot  as plt

имеет место следующая грамматика: сначала идёт ключевое слово import, потом название модуля или цепочка имён модулей, разделённых точкой, потом ключевое слово as, а за ним — наше название импортируемому модулю.

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

{ 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }

Данное выражение представляет собой словарь Python, который имеет два ключа: 'import' и 'as'. Значением для ключа 'import' является список, в котором по порядку перечислены названия импортируемых модулей.

Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

r'^[ \t]*import +\D+\.\D+ +as \D+'

К счастью, есть удобный и гибкий инструмент для парсинга, который называется Pyparsing. Главное его достоинство — он делает код более читаемым, а также позволяет проводить дополнительную обработку анализируемого текста.

В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

Читать дальше →
Total votes 57: ↑46 and ↓11+35
Comments12

Вглубь Pyparsing: парсим единицы измерения на Python

Reading time12 min
Views16K
В прошлой статье мы познакомились с удобной библиотекой синтаксического анализа Pyparsing и написали парсер для выражения 'import matplotlib.pyplot as plt'.

В этой статье мы начнём погружение в Pyparsing на примере задачи парсинга единиц измерения. Шаг за шагом мы создадим рекурсивный парсер, который умеет искать символы на русском языке, проверять допустимость названия единицы измерения, а также группировать те из них, которые пользователь заключил в скобки.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments1

Оптоволоконные кабели связи. Как это делается

Reading time11 min
Views101K
В нескольких своих постах, опубликованных более года назад, я поднял такую интересную для многих и чем-то захватывающую тему, как магистральные оптоволоконные кабели связи, в частности, тему «подводной» оптики. Информация в данных публикациях была неполной, торопливой и разрозненной, так как статьи писались «на коленке» во время обеденного перерыва. Сейчас я бы хотел поделиться структурированным и, насколько это возможно, полным материалом по теме оптики, с максимумом вкусных подробностей и гик-порно, от которых на душе любого технаря станет тепло.

Внутри схемы, гифки, таблицы и много интересного текста.

Вы готовы?

image
Давай уже сюда свой пост
Total votes 65: ↑60 and ↓5+55
Comments15

Теория типов

Level of difficultyMedium
Reading time43 min
Views32K

Мы так привыкли к типам, что редко задаёмся вопросом, что же они такое на самом деле? А главное - почему возникла необходимость в их использовании? Этот поверхностный обзор сделан для того, чтобы продемонстрировать, как типы и другие связанные абстракции являются следствием из обобщения условий различных задач.

Что можно узнать из этой статьи?
Total votes 75: ↑75 and ↓0+75
Comments70

2. Математическое описание систем автоматического управления

Reading time10 min
Views38K

Публикую первую часть второй главы лекций по теории автоматического управления.
В данной статье рассматриваются:


2.1. Получение уравнений динамики системы. Статическая характеристика. Уравнение динамики САУ (САР) в отклонениях
2.2. Линеаризация уравнений динамики САУ (САР)
2.3. Классический способ решения уравнений динамики


Лекции по курсу «Управление Техническими Системами», читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки», факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность.


Данные лекции только готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется.


Первая часть: «Введение в теорию автоматического управления. Основные понятия теории управления техническим системами»



Читать дальше →
Total votes 6: ↑3 and ↓3+3
Comments9

Многоразовость. Как ракете вернуться целой после полёта?

Reading time11 min
Views21K
Не многие знают, что над вопросом создания многоразовых ракет у нас в стране всерьёз задумались достаточно давно. Как гласят предания, однажды, боковой блок ракеты-носителя типа «Союз» (может это была и «Молния», сути не меняет) очень удачно приземлился. Обычно блок падает двигателем вниз, а тут упал необычным образом — баком вниз, а двигателем вверх. Может дерево задел, может порыв ветра закрутил, не понятно. Но сам факт остаётся фактом и двигатель по внешним признакам был в прекрасном состоянии. Ради интереса его сняли с обломков ракетного блока, поставили на штатный испытательный стенд, и он нормально отработал. После этого по отрасли поползли мысли, что многоразовость ракет и двигателей это не фантастика, а реальность. Говорят, «ЦСКБ-Прогресс», возглавляемое Д.И.Козловым, активно продвигало идеи многоразовых ракетных блоков в рамках темы «Подъём», которую свернули в угоду программы «Энергия-Буран» и её производной — РН «Зенит», на базе которой В.Ф.Уткин планировали делать своё семейство ракет-носителей. Вот такая история. Вообще, по истории многоразовых ракет и теории принятия решений в этой области, можно написать хорошую книгу, которая при должном подходе потянет на художественный роман. Но моей целью является рассказать о том, какие схемы обеспечения многоразовости ракетных блоков есть, почему именно они применяются, чем отличаются друг от друга и какие в них нюансы.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments136

Шахматы на C++

Reading time68 min
Views48K

Не так давно я захотел написать свой шахматный движок. На удивление в Интернете нашлось не так много хороших статей на эту тему. Были статьи с довольно слабыми программами, многие из которых даже умудрялись пропускать некоторые важные правила. А были статьи с хорошими программами (некоторые из них были даже чуть лучше чем получилось у меня в итоге), но там авторы рассказывали лишь основные идеи, пропуская подробности, из-за чего написать что-то свое по таким статьям было проблематично. Поэтому после написания своей программы, я решил написать статью, дабы облегчить жизнь интересующимся в данной теме. Я не претендую на лучшую шахматную программу или на чистейший код, но эта статья будет хорошим и легким началом для тех, кто хочет написать что-то свое.

Читать далее
Total votes 151: ↑150 and ↓1+188
Comments56

Введение в теорию автоматического управления. Основные понятия теории управления техническим системами

Reading time15 min
Views167K

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


Лекции по курсу «Управление Техническими Системами», читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки», факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность.


Данные лекции только готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика привествуется.


Читать дальше →
Total votes 25: ↑23 and ↓2+33
Comments117

Information

Rating
Does not participate
Registered
Activity