Программирование на Python | itpy 💻
526 subscribers
3 photos
2 videos
20 links
Азим вкатывается в IT – это блог, в котором я рассказываю о Python и айти не только в рамках подготовки к ЕГЭ, но и за ее пределами.

Автор канала: @ilandroxxy
Канал по подготовке к ЕГЭ: t.me/informatika_kege_itpy

💬 Ссылка на чат: t.me/analyst_chat_itpy
Download Telegram
📱 Разбор регулярных выражений в Python на примере заданий из ЕГЭ по информатике #tpy

Регулярные выражения — мощный инструмент для поиска и анализа текстовых данных. В заданиях ЕГЭ по информатике (задание 24) они часто используются для поиска числовых последовательностей по определённому шаблону. Разберём основные приёмы на примерах из реальных задач.

Общая структура большинство решений строится по следующему шаблону:
from re import *

s = open('24.txt').readline()
# num — шаблон отдельного числа
# reg — шаблон всей последовательности
reg = rf'{num}([+*]{num})*'
matches = [x.group() for x in finditer(reg, s)]
maxi = max(len(x) for x in matches)
print(maxi)


Пример 1: Поиск последовательностей чисел от 7, 8, 9, 0 (№ 20813 #kege)
num = r'([789][0789]*|[0])'
reg = rf'{num}([-*]{num})*'

🔣num — число, начинающееся с 7, 8 или 9 и продолжающееся цифрами 0, 7, 8, 9, либо одиночный ноль.
🔣reg — последовательность таких чисел, разделённых символами - или *.


Пример 2: Работа с буквами и диапазоном 1–6 (№ 18619 #kege)
s = s.replace('A', ' ').replace('C', ' ').replace('D', ' ')
num1 = r'[B]([1-6][1-6]*)'
num2 = r'([1-6][1-6]*)'
reg = rf'{num1}([-*]{num2})*'

🔣Заменяются лишние символы на пробелы.
🔣Затем ищутся последовательности, начинающиеся с B, за которой идут цифры от 1 до 6, и операторы - или *.


Пример 3: Подсчёт количества чисел (№ 18285 #kege)
num = r'([1-9][0-9]*)'
reg = rf'{num}([+*]{num})*'

🔣Сначала находятся выражения вида a+b+c.
🔣Затем + и * заменяются на пробелы, и с помощью split() считается количество чисел в выражении.

Пример 4: Сумма выражений (№ 18147 #kege)
num = r'([789]+)'
reg = rf'{num}([+]{num})+'

🔣Ищутся выражения с числами из цифр 7, 8 и 9, соединённые знаком +.
🔣Затем по условию задания с помощью функции eval() находится максимальное значение такого выражения.


🚩 Общие шаблоны для задач ЕГЭ

Определение чисел:
r'([1-9][0-9]*)' - натуральные числа (без ведущих нулей)

r'([0-9]+)' - любые целые числа

r'([789][0789]*)' - числа, начинающиеся с 7,8 или 9


Операции между числами:
([+*]{num})* - повторяющиеся операции + или *

([-+*]{num})* - операции -, + или *


Специальные условия:
Окончание на определенные цифры: [05]

Начало с определенных букв: [AFD]


Регулярные выражения - это мощный инструмент, который требует практики. Разбирая подобные задачи, вы лучше поймете их синтаксис и возможности.

#⃣ Вся теория для ЕГЭ в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥3👍2🔥1