Информатика | Илья Андрианов | itpy 🧑‍💻
1.05K subscribers
264 photos
20 videos
19 files
630 links
По рекламе: @ilandroxxy

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
Информатика | Илья Андрианов | itpy 🧑‍💻
Какой номер разбираем следующий?
Пост про itertools появился не просто так, с завтрашнего дня будем разбирать задачи из 8 номера 🫰
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩7
Информатика | Илья Андрианов | itpy 🧑‍💻
💡Шкала перевода баллов ЕГЭ по информатике 2024 #useful Шкала такая же, как и в прошлом году 17 заданий - 70 баллов 21 задание - 80 баллов 25 заданий - 90 баллов Последние два номера дают по 2 первичных балла (за каждый ответ), суммарно за них можно получить…
while True:
s = int(input('Сколько первичных баллов ты планируешь набрать? \n'))
if 1 <= s <= 29:
tab = [7, 14, 20, 27, 34, 40, 43, 46, 48, 51,
54, 56, 59, 62, 64, 67, 70, 72, 75, 78,
80, 83, 85, 88, 90, 93, 95, 98, 100]
print(f'Ты получишь: {tab[s - 1]} баллов! \n')
else:
print('Выход из программы.')
exit()
965
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 15947 #reshu по информатике #ЕГЭ8
Уровень: Базовый

🚩 Условие задачи:
Все четырёхбуквенные слова, составленные из букв А, Л, Г, О, Р, И, Т, М, записаны в алфавитном порядке и пронумерованы, начиная с 1.
Начало списка выглядит так:
1. АААА
2. АААГ
3. АААИ
4. АААЛ

Под каким номером в списке идёт первое слово, которое начинается с букв ИГ?


🚩 Теоретическая справка:
Функция sorted() позволяет легко получить алфавитный порядок. А оператор break позволяет остановиться на первом слове.


👩‍💻 Код решения:
from itertools import product
k = 0
for s in product(sorted('АЛГОРИТМ'), repeat=4):
word = ''.join(s)
k += 1
if word[:2] == 'ИГ':
print(k)
break


👩‍💻 Комментарии к коду:

1⃣ from itertools import product
Импортируется функция product из модуля itertools, которая генерирует декартово произведение итерабельных объектов.


2⃣ k = 0
Инициализируется переменная k, которая будет использоваться для отслеживания количества итераций.


3⃣ for s in product(sorted('АЛГОРИТМ'), repeat=4):
Запускается цикл for, в котором производится комбинация символов из отсортированной строки 'АЛГОРИТМ' с повторением в 4 раза.


4⃣ word = ''.join(s)
Создается строка word, объединяя символы из текущей комбинации s.


5⃣ k += 1
Увеличивается счетчик k на 1 для подсчета количества итераций.


6⃣ if word[:2] == 'ИГ':
Проверяется, начинается ли текущее слово word с символов 'ИГ'.


7⃣ print(k)
Если условие выполняется, то выводится значение счетчика k.


8⃣ break
Происходит прерывание цикла после печати значения счетчика для первого слова, начинающегося с 'ИГ'.


👩‍💻 Альтернативное решение:
s = sorted('АЛГОРИТМ')
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
word = a + b + c + d
k += 1
if word[:2] == 'ИГ':
print(k)
exit()


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1064
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Полезная информация о работе с кортежами в Python и частые ошибки при их использовании #tpy

Важно помнить, что методы модуля itertools в Python возвращают кортежи, которые представляют собой последовательности отдельных элементов. Это может привести к некоторым недочетам, если не учитывать особенности работы с кортежами.

🚩 Особенности поиска в кортеже поэлементно:
При поиске элементов в кортеже происходит проверка каждого элемента поочередно. Python не проверяет наличие целых групп элементов, а ищет именно указанный кортеж как отдельный элемент.

Например, при поиске кортежа ('A', 'B') Python не будет искать группу элементов 'A' и 'B', а будет искать именно этот кортеж как целостный элемент кортежа.

🚩 Поиск подстроки в строке:
В отличие от работы с кортежами, при поиске подстроки в строке Python будет искать конкретную последовательность символов внутри строки. Если вы используете оператор in, чтобы проверить вхождение последовательности слева от него в строку справа, то будет возвращено значение истины (True), если подстрока присутствует.

Эти нюансы важно учитывать, чтобы избежать ошибок при обработке кортежей и строк в Python.

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
7554
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 4199 #polyakov по информатике #ЕГЭ8
Уровень: Сложный

🚩 Условие задачи:
Ксения составляет слова из букв К, С, Е, Н, И, Я.
Каждая гласная буква встречается в слове не более двух раз.
Каждая согласная может стоять в слове на первой позиции, либо не встречаться вовсе.

Сколько различных слов длиною более двух символов может составить Ксения?


🚩 Теоретическая справка:
Особое внимание нужно уделить условию "после".


👩‍💻 Код решения:
from itertools import *
cnt = 0
for l in range(3, 7+1):
for s in product('КСЕНИЯ', repeat=l):
word = ''.join(s)
if all(word.count(x) <= 2 for x in 'ЕИЯ'):
sogl = [x for x in word if x in 'КСН']
if (len(sogl) == 1 and word[0] in sogl) or len(sogl) == 0:
cnt += 1
print(cnt)

# Ответ: 1059


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импорт всех функций из модуля itertools.


2⃣ cnt = 0
Инициализируется переменная cnt, которая будет использоваться для подсчета количества слов, удовлетворяющих заданным условиям.


3⃣ for l in range(3, 7+1):
Запускается внешний цикл for по длине слова l от 3 до 7 включительно.


4⃣ for s in product('КСЕНИЯ', repeat=l):
В цикле генерируются все возможные комбинации символов 'КСЕНИЯ' длины l.


5⃣ word = ''.join(s)
Строка word, объединяя символы из текущего набора s.


6⃣ if all(word.count(x) <= 2 for x in 'ЕИЯ'):
Проверяется, что количество вхождений символов 'Е', 'И' и 'Я' в слове word не превышает 2 для каждого из них.


7⃣ sogl = [x for x in word if x in 'КСН']
Формируется список sogl, содержащий только согласные буквы из слова word (символы 'К', 'С', 'Н').


8⃣ if (len(sogl) == 1 and word[0] in sogl) or len(sogl) == 0:
Проверяется условие, что либо в слове есть только одна согласная и это первая буква, либо в слове нет согласных.


0⃣ cnt += 1
Если слово удовлетворяет условиям, счетчик увеличивается.


🔟 print(cnt)
Выводится количество слов, удовлетворяющих условиям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
8543
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 sorted(X, reverse=True) и reversed(sorted(X)) в Python разница и особенности #tpy

Когда речь идет о сортировке данных в Python, важно понимать разницу между применением функции sorted(X, reverse=True) и конструкции reversed(sorted(X)). Давайте рассмотрим эти два подхода более подробно.

🚩 sorted(X, reverse=True):
Функция sorted с параметром reverse=True применяет сортировку элементов последовательности в порядке убывания. Это означает, что наименьшие значения будут находиться в конце списка, а наибольшие - в начале.

Пример:
X = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_X = sorted(X, reverse=True)
print(sorted_X)
# Вывод: [9, 6, 5, 5, 4, 3, 2, 1, 1]



🚩 reversed(sorted(X)):
Использование reversed(sorted(X)) подразумевает сначала сортировку списка, а затем его обращение. Важно помнить, что reversed возвращает итератор, поэтому обычно его результат преобразуется в список или кортеж для удобства.

Пример:
X = [3, -1, 4, -1, 5, -9, 2, -6, 5]
reversed_sorted = list(reversed(sorted(X)))
print(reversed_sorted)
# Вывод: [5, 5, 4, 3, 2, -1, -1, -6, -9]


Для применения устойчивой сортировки, важно разумно выбирать между sorted(X, reverse=True) и reversed(sorted(X)). Понимание принципов устойчивой сортировки поможет вам эффективно работать с вашими структурами данных. Надеюсь, эта информация будет полезной для вас! 🚀

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
987
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 12917 #kege по информатике #ЕГЭ8
Автор: PRO100ЕГЭ
Уровень:
Базовый

🚩 Условие задачи:
Петя составляет слова путём перестановки букв в слове ПРОСТО. Сколько он сможет составить слов, если запрещено ставить рядом две одинаковые буквы?


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

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


👩‍💻 Код решения:
from itertools import permutations
k = []
for x in permutations("ПРОСТО"):
word = ''.join(x)
if "ОО" not in word:
k.append(word)
print(len(set(k)))

# Ответ: 240


👩‍💻 Комментарии к коду:

1⃣ from itertools import permutations
Импортируется функция permutations из модуля itertools, которая генерирует все возможные перестановки элементов.


2⃣ k = []
Создается пустой список k, который будет хранить слова, удовлетворяющие условию задачи.


3⃣ for x in permutations("ПРОСТО"):
Запускается цикл for, в котором перебираются все перестановки букв из слова "ПРОСТО".


4⃣ word = ''.join(x)
Формируется слово word, объединяя буквы из текущей перестановки.


5⃣ if "ОО" not in word:
Проверяется условие, что в слове word нет подстроки "ОО".


6⃣ k.append(word)
Если слово удовлетворяет условию, оно добавляется в список k.


7⃣ print(len(set(k)))
Выводится количество уникальных слов из списка k, используя множество для удаления дубликатов.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6443
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Небольшой пост про функцию reversed() #tpy

Функция reversed() - это еще один полезный инструмент для работы с последовательностями данных, который позволяет изменить порядок элементов списка на противоположный.

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

Пример использования функции reversed() в Python:
# Создаем список элементов
numbers = [1, 2, 3, 4, 5]

# Используем reversed() для переворота списка
reversed_numbers = reversed(numbers)

# Выводим элементы списка в обратном порядке
print(list(reversed_numbers))

# Результат:
# [5, 4, 3, 2, 1]


Информатика ЕГЭ | itpy
👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6554
статград 23.04.pdf
999.2 KB
Новый вариант Статград и последний в этом году #useful

Нужно ли разбирать задачи отсюда?
Ставьте 😼, если охотно напрячь меня

Файлы добавлю в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
21333
Чудо произошло, теперь тут есть анимированные эмодзи 🍊🐤
Anonymous Poll
22%
💪💪
44%
🫧🫧
24%
🔫🔫
10%
⚡️⚡️
188532
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера из нового варианта #statgrad по информатике #ЕГЭ8
Автор: Статград
Уровень: Базовый


🚩 Условие задачи:
Все десятибуквенные коды, составленные из букв, входящих в слово
СКАНЕР, расположены в алфавитном порядке и пронумерованы.

Определите количество кодов, для которых одновременно выполнены условия:
1) номер кода в списке делится на 3;
2) первая буква кода – согласная;
3) код содержит ровно одну букву Р.


👩‍💻 Код решения:
from itertools import product
num = 0
cnt = 0
for s in product(sorted('СКАНЕР'), repeat=10):
word = ''.join(s)
num += 1
if num % 3 == 0:
if word[0] in 'СКНР':
if word.count('Р') == 1:
cnt += 1
print(cnt)

# Ответ: 4531250


👩‍💻 Комментарии к коду:

1⃣ from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.


2⃣ num = 0
Инициализация переменной num для отслеживания общего количества рассмотренных комбинаций.


3⃣ cnt = 0
Инициализация переменной cnt для подсчета количества комбинаций, удовлетворяющих условиям задачи.


4⃣ for s in product(sorted('СКАНЕР'), repeat=10):
Цикл for, в котором перебираются все возможные комбинации длиной 10 символов из отсортированных букв 'СКАНЕР'.


5⃣ word = ''.join(s)
Объединение символов из текущей комбинации в одно слово для дальнейшей проверки.


6⃣ num += 1
Увеличение счетчика num на 1 для отслеживания количества рассмотренных комбинаций.


7⃣ if num % 3 == 0:
Проверка, что номер рассматриваемой комбинации делится на 3 без остатка.


8⃣ if word[0] in 'СКНР':
Проверка, содержит ли первая буква слова 'С', 'К', 'Н' или 'Р'.


0⃣ if word.count('Р') == 1:
Проверка, что буква 'Р' встречается в слове ровно 1 раз.


1⃣0⃣ cnt += 1
Увеличение счетчика cnt на 1, если текущая комбинация удовлетворяет всем условиям.


1⃣1⃣ print(cnt)
Вывод количества комбинаций, удовлетворяющих заданным условиям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
9663
Информатика | Илья Андрианов | itpy 🧑‍💻
статград 23.04.pdf
Есть мысль добить несколько постов (на этой неделе) по 8 номерам, опубликовать шпаргалку и уже на следующей неделе накидать разборов (выборочных) Пайтон задач с этого варианта. Мнение? ☹️

🥰 - Одобряем однозначно
⭐️ - Одобряем 100%
Please open Telegram to view this post
VIEW IN TELEGRAM
1884
🔤🔤🔤🔤🔤🔤🔤🔤🔤
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Повторяем срезы в Python #tpy

Срезы (slices) - это мощный инструмент в Python, позволяющий извлекать подотрезки данных из последовательностей, таких как списки, строки и кортежи.

Синтаксис срезов в Python:
sequence[начало:конец:шаг]


🚩 начало - индекс элемента, с которого начинается срез (включительно).

🚩 конец - индекс элемента, на котором срез заканчивается (не включительно).

🚩 шаг - опциональный параметр, определяющий, какие элементы будут выбраны (по умолчанию шаг равен 1).

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
955👍3
Очень грустно, когда посты не набирают реакций, это же так просто сделать «тык» 😪. Давайте выберем набор(ы) emoji, который(е) вам нрави(я)тся больше всего. Сами наборы продублирую в комментариях 👇
Anonymous Poll
43%
🥰😘💃😅😇
29%
😇🤯😮😼😑
29%
🫧🎹🍊😭
24%
😂🥳🤩👏🙏
39%
🚀✈️❤️‍🔥❤️👾
24%
👏⭐️😱👋🥰
4%
Свои варианты можно оставить в комментариях 💻
117644
This media is not supported in your browser
VIEW IN TELEGRAM
Люди не обновившие Телеграм такие: 🗿
Please open Telegram to view this post
VIEW IN TELEGRAM
8👏3332