Информатика ЕГЭ | Илья Андрианов | itpy 🧑‍💻
1.11K subscribers
273 photos
22 videos
19 files
660 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
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
47🔥3👍2
🔍 Функции all() и any() в Python: просто о полезном #tpy

В задачах ЕГЭ (например, в номере 25) часто нужно проверять условия для всех или хотя бы одного элемента из набора. Python предлагает элегантные решения — встроенные функции all() и any().


🚩 Пример с all() — Проверка простого числа
def is_prime(x):
if x <= 1:
return False
return all(x % i != 0 for i in range(2, x))

print(is_prime(7)) # Вывод: True


📌 Объяснение:

🔣Генераторное выражение (x % i != 0 for i in range(2, x)) создает последовательность логических значений: True, если x не делится на i, и False, если делится.

🔣Функция all() возвращает True, только если все значения в последовательности — истинны.

🔣В результате, is_prime(7) вернет True, так как 7 не делится ни на одно число от 2 до 6 — то есть, это простое число.


🚩 Пример с any() — Поиск хотя бы одного делителя
def has_divisor(x):
return any(x % i == 0 for i in range(2, x))

print(has_divisor(9)) # Вывод: True


📌 Объяснение:

🔣Генератор проверяет, делится ли x хотя бы на одно число в диапазоне.

🔣any() вернет True, если хотя бы одно значение в последовательности — истина.

🔣В примере has_divisor(9) возвращает True, потому что 9 делится на 3.



💡 Кратко:

🔣all() — возвращает True, если все элементы истинны.

🔣any() — возвращает True, если хотя бы один элемент истинен.

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

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥932
📱 Можно ли использовать else после for или while в Python? #tpy

Ответ: Да, можно! И это — вполне валидная и полезная конструкция.

📌 Как это работает?
В Python блок else после цикла for или while выполняется только в том случае, если цикл завершился нормально, то есть без использования break.


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

Программирование на Python | itpy 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥10👍4🔥32
🚩 Строковые константы модуля string в Python #tpy

При работе со строками часто возникает задача: определить, к какой категории символов относится тот или иной символ — цифра ли это, буква, знак пунктуации и т.д.

Помимо методов isdigit(), isalpha(), использования Unicode (ord()) и регулярных выражений, Python предлагает более удобный способ — строковые константы встроенного модуля string.


📚 Примеры полезных констант:
import string

print(string.digits)
# Цифры: 0123456789

print(string.ascii_letters)
# Все английские буквы: abc...XYZ

print(string.ascii_lowercase)
# Только строчные: abc...

print(string.ascii_uppercase)
# Только заглавные: ABC...

print(string.punctuation)
# Знаки препинания: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~


📌 Эти готовые строки особенно полезны, когда:
🔣Нужно фильтровать или валидировать ввод
🔣Писать генераторы случайных паролей
🔣Проверять состав строки без использования регулярных выражений



🔎 Пример использования — фильтрация букв:
s = "Hello123!"
letters_only = [ch for ch in s if ch in string.ascii_letters]
print(letters_only) # ['H', 'e', 'l', 'l', 'o']

Кроме вышеупомянутых, модуль string содержит и другие полезные объекты, включая string.whitespace, string.printable и даже шаблонные классы для форматирования.

🔗 Подробнее в официальной документации:
docs.python.org/3/library/string.html

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥84🔥3