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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣6⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ16 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Пример типового решения:
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)

print(F(2024) - F(2020))


🚩 Дополнительная библиотека:
from sys import *
setrecursionlimit(10000)


🚩 Ещё одна дополнительная библиотека:
from functools import *

@lru_cache(None)


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
754
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣2⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ12 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Пример типового решения:
s = 170 * '1' + 100 * '3' + 7 * '2'

while '11' in s:
s = s.replace('112', '4', 1)
s = s.replace('113', '2', 1)
s = s.replace('42', '3', 1)
s = s.replace('43', '1', 1)

print(s)


🚩 s = 170 * '1' + 100 * '3' + 7 * '2'
Пример создания строка s, состоящая из 170 символов '1', за которыми следует 100 символов '3', а затем 7 символов '2'.


🚩 while '11' in s:
Начинается цикл, который будет выполняться до тех пор, пока в строке s есть подстрока '11'.


🚩 if '11' in s:
Если в строке s есть подстрока '11', то:


🚩 s = s.replace('112', '4', 1)
Заменяется первое вхождение подстроки '112' на символ '4' в строке s.


🚩 summa = sum([int(i) for i in s])
Создается переменная summa, с суммой цифр строки.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
965
This media is not supported in your browser
VIEW IN TELEGRAM
1654
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 315 #kege по информатике #ЕГЭ25
Автор: Е.Джобс
Уровень: Средний


🚩 Условие задачи:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [326496; 649632], числа, у которых количество четных делителей равно количеству нечетных делителей. При этом в каждой из таких групп делителей не менее 70 элементов. Для каждого найденного числа запишите само число и минимальный делитель, больший 1000.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
def Divisors(x):
div = []
for j in range(1, int(x ** 0.5) + 1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))


for x in range(326496, 649632+1):
d = Divisors(x)
chet = [a for a in d if a % 2 == 0]
nechet = [a for a in d if a % 2 != 0]
if len(chet) == len(nechet):
if len(chet) >= 70 and len(nechet) >= 70:
print(x, min([a for a in d if a > 1000]))

# Ответ: 315


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

1⃣ def Divisors(x):
Функцию Divisors() комментировать не буду, опишу её постом ниже.


2⃣ for x in range(326496, 649632+1):
Цикл for, который перебирает числа в диапазоне от 326496 до 649632 включительно.


3⃣ d = Divisors(x)
Вызов функции Divisors(x), которая возвращает список делителей числа x.


4⃣ chet = [a for a in d if a % 2 == 0]
Формирование списка chet, содержащего только четные делители числа x.


5⃣ nechet = [a for a in d if a % 2 != 0]
Формирование списка nechet, содержащего только нечетные делители числа x.


6⃣ if len(chet) == len(nechet):
Проверка, равны ли длины списков четных и нечетных делителей числа x.


7⃣ if len(chet) >= 70 and len(nechet) >= 70:
Проверка, имеют ли списки четных и нечетных делителей числа x по крайней мере по 70 элементов.


8⃣ print(x, min([a for a in d if a > 1000]))
Вывод числа x вместе с минимальным делителем, превышающим 1000.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1043
Please open Telegram to view this post
VIEW IN TELEGRAM
9642
📚 Шпаргалка ЕГЭ | Базовые функции python #tpy

Функции и их краткие описания с примерами:

1⃣ range(start, stop, step) - создает последовательность чисел от start до stop-1 с указанным шагом step.
for i in range(1, 6, 2):
print(i)
# Выведет: 1, 3, 5


2⃣ max(iterable) - находит максимальное значение в итерируемом объекте.
nums = [5, 2, 8, 1, 9]
print(max(nums))
# Выведет: 9


3⃣ len(iterable) - возвращает длину итерируемого объекта (количество элементов).
fruits = ["apple", "banana", "orange"]
print(len(fruits))
# Выведет: 3


4⃣ sum(iterable) - возвращает сумму всех элементов в итерируемом объекте.
numbers = [1, 2, 3, 4]
print(sum(numbers))
# Выведет: 10


5⃣ sorted(iterable) - возвращает отсортированный список элементов итерируемого объекта.
nums = [5, 2, 8, 1, 9]
sorted_nums = sorted(nums)
print(sorted_nums)
# Выведет: [1, 2, 5, 8, 9]


6⃣ open().readline() - открывает файл и возвращает первую строку из него.
with open("file.txt") as file:
first_line = file.readline()
print(first_line)


7⃣ int(s, n) - преобразует строку s в целое число в системе счисления n.
binary_num = "1010"
decimal_num = int(binary_num, 2)
print(decimal_num)
# Выведет: 10


8⃣ str() - преобразует объект в строковое представление.
number = 42
str_number = str(number)
print(str_number)
# Выведет: "42"


0⃣ all(iterable) - возвращает True, если все элементы в итерируемом объекте истинные.
bools = [True, True, False]
print(all(bools))
# Выведет: False


1⃣0⃣ any(iterable) - возвращает True, если хотя бы один элемент в итерируемом объекте истинный.
bools = [False, False, True]
print(any(bools))
# Выведет: True


1⃣1⃣ print(*objects) - выводит переданные объекты в консоль.
name = "Alice"
print("Hello, ", name)
# Выведет: Hello, Alice


1⃣2⃣ map(function, iterable) - применяет функцию к каждому элементу итерируемого объекта.
nums = [1, 2, 3]
squares = list(map(lambda x: x*x, nums))
print(squares)
# Выведет: [1, 4, 9]


Данный пост поможет вам быстро освоить базовые функции Python из списка. Пишите в комментарии, если я что-то забыл 👇

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
13333
🖥 Все методы списков в Python, которые понадобятся на ЕГЭ #tpy


🚩 .APPEND()

Метод .append() используется для добавления элемента в конец списка. Пример:
my_list = [1, 2, 3]
my_list.append(4)
my_list.append(5)
print(my_list) # Вывод: [1, 2, 3, 4, 5]


Можно реализовать через конкатенацию (склеивание) списков:
my_list = [1, 2, 3]
my_list = [0] + my_list + [4, 5]
print(my_list) # Вывод: [0, 1, 2, 3, 4, 5]



🚩 .REVERSE()

Метод .reverse() изменяет порядок элементов в списке на обратный. Пример:
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list) # Вывод: [4, 3, 2, 1]


Можно записать по другому через срез:
my_list = [1, 2, 3, 4]
my_list = my_list[::-1]
print(my_list) # Вывод: [4, 3, 2, 1]



🚩 .COUNT()

Метод .count() возвращает количество вхождений заданного элемента в список. Пример:
my_list = [1, 2, 2, 3, 4, 2]
print(my_list.count(2)) # Вывод: 3



🚩 .REMOVE()

Метод .remove() удаляет первое вхождение указанного элемента из списка. Пример:
my_list = [1, 2, 3, 2, 4]
my_list.remove(2) # Первая найденная двойка
print(my_list) # Вывод: [1, 3, 2, 4]


Можно удалить элемент через его индекс используя del:
my_list = [1, 2, 3, 2, 4]
del my_list[1] # Индекс удаляемого элемента
print(my_list) # Вывод: [1, 3, 2, 4]



🚩 .INDEX()

Метод .index() возвращает индекс первого вхождения заданного элемента в списке. Пример:
my_list = [1, 2, 3, 2, 4]
print(my_list.index(2)) # Вывод: 1



🚩 .SORT()

Метод .sort() сортирует элементы списка по возрастанию (по умолчанию) или в обратном порядке, если передан аргумент reverse=True. Пример:
my_list = [4, 1, 3, 2]
my_list.sort()
print(my_list) # Вывод: [1, 2, 3, 4]

my_list.sort(reverse=True)
print(my_list) # Вывод: [4, 3, 2, 1]


Скажу честно я не любитель этого метода, считаю, что удобнее будет использовать функцию sorted():
my_list = [4, 1, 3, 2]
my_list = sorted(my_list)
print(my_list) # Вывод: [1, 2, 3, 4]

my_list = sorted(my_list, reverse=True)
print(my_list) # Вывод: [4, 3, 2, 1]


Информатика ЕГЭ | itpy 👨‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1343
👩‍💻 Мастерим срезы в Python: Изучаем эффективное использование срезов в списках и строках #tpy

🚩 Извлечение подсписка:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[2:5]
print(subset) # Вывод: [3, 4, 5]

Здесь мы извлекаем подсписок, начиная с индекса 2 и заканчивая индексом 5 (не включая). Это полезно, когда нам нужна определенная часть списка.

🚩 Извлечение каждого второго элемента:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[1::2]
print(subset) # Вывод: [2, 4, 6, 8, 10]

В этом примере мы извлекаем каждый второй элемент, начиная с индекса 1, то есть все нечетные ИНДЕКСЫ.

🚩 Извлечение обратного порядка списка:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reverse_list = my_list[::-1]
print(reverse_list) # Вывод: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Использование среза с отрицательным шагом позволяет нам легко создать список в обратном порядке.

🚩 Извлечение подстроки:
my_string = "Hello, World!"
substring = my_string[7:12]
print(substring) # Вывод: "World"

В данном случае, мы извлекаем подстроку, начиная с индекса 7 и заканчивая индексом 12 (не включая). Это полезно для работы с текстовыми данными.

🚩 Извлечение каждого второго символа:
my_string = "Hello, World!"
substring = my_string[::2]
print(substring) # Вывод: "Hlo ol!"

Использование среза с шагом 2 помогает нам извлекать каждый второй символ из строки.

🚩 Извлечение обратного порядка строки:
my_string = "Hello, World!"
reverse_string = my_string[::-1]
print(reverse_string) # Вывод: "!dlroW ,olleH"

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

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

Информатика ЕГЭ | itpy 👨‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
10443
Стало интересно сколько баллов планируете набрать на ЕГЭ по информатике? 🤔
Anonymous Poll
6%
0-40
7%
40-60
12%
60-70
21%
70-80
23%
80-90
13%
90-95
18%
95-100
854
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 9076 #kege по информатике #ЕГЭ25
Автор: А.Богданов
Уровень: Базовый


🚩 Условие задачи:
Найдите все натуральные числа, не превышающие 10**9, которые соответствуют маске 20*23 и при этом без остатка делятся на 2023, а сумма цифр каждого такого числа кратна 7 и меньше 20.


🚩 Теоретическая справка:
Сумму цифр строки можно найти используя: summa = sum(map(int, s))


👩‍💻 Код решения:
from fnmatch import *
for x in range(2023, 10**9, 2023):
if fnmatch(str(x), '20*23'):
summa = sum([int(i) for i in str(x)])
if summa % 7 == 0 and summa < 20:
print(x)

# Ответ:
# 2023
# 204323
# 2025023
# 20232023
# 202302023


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

1⃣ from fnmatch import *
Импорт всех элементов модуля fnmatch. Этот модуль используется для сравнения строк с шаблонами, используя стандартные символы для подстановок.


2⃣ for x in range(2023, 10**9, 2023):
Цикл for, который перебирает числа, начиная от 2023 и до 1000000000 с шагом 2023.


3⃣ if fnmatch(str(x), '20*23'):
Проверка, соответствует ли строковое представление числа x шаблону '20*23'. Это используется для проверки определенного условия на соответствие числа некоторому шаблону.


4⃣ summa = sum([int(i) for i in str(x)])
Вычисление суммы всех цифр в числе x. Для этого строковое представление числа разбивается на отдельные цифры, каждая из которых преобразуется в целое число, после чего вычисляется сумма.


5⃣ if summa % 7 == 0 and summa < 20:
Проверка, делится ли сумма цифр числа x на 7 без остатка и при этом не превышает ли сумма 20.


6⃣ print(x)
Вывод числа x, которое удовлетворяет условиям, описанным выше. Если число соответствует условиям, оно будет выведено.

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1054
👩‍💻 Все методы строк в Python, которые могут понадобиться на ЕГЭ #tpy

🚩 .REPLACE()

Метод .replace(old, new, count) используется для замены подстроки old на new в строке. Можно указать count, чтобы ограничить количество замен.
s = "Hello, World!"
new_s = s.replace("Hello", "Hi")
print(new_s) # Вывод: "Hi, World!"


🚩 .INDEX()

Метод .index(substring) возвращает индекс первого вхождения подстроки substring в строке. Если подстрока не найдена, возникает ошибка.
s = "Hello, World!"
index = s.index("World")
print(index) # Вывод: 7


🚩 .COUNT()

Метод .count(substring) возвращает количество вхождений подстроки substring в строке.
s = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
count = s.count("wood")
print(count) # Вывод: 4


🚩 .SPLIT()

Метод .split(separator) разбивает строку на подстроки по указанному разделителю separator и возвращает список подстрок.
s = "Split this s into words"
words = s.split(" ")
print(words) # Вывод: ["Split", "this", "s", "into", "words"]


🚩 "".JOIN()

Метод "".join(iterable) объединяет строки из итерируемого объекта в одну строку, разделяя их пустой строкой.
words = ["Join", "these", "words"]
s = "".join(words)
print(s) # Вывод: "Jointhesewords"


🚩 .ISDIGIT()

Метод .isdigit() проверяет, состоит ли строка только из цифровых символов. Возвращает True или False.
number = "12345"
is_digit = number.isdigit()
print(is_digit) # Вывод: True


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1464
This media is not supported in your browser
VIEW IN TELEGRAM
2⃣4⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ24 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤️‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Чтение файла для 24 номера:
s = open('24.txt').readline()


🚩 Способ замены подстроки из файла:
s = s.replace('1', '2').replace('W', 'R')


🚩 Ищем подстроку наибольшей длины:
print(max([len(x) for x in s.split()]))


🚩 Ищем в строке s четверки символов:
for i in range(len(s)-3):
if s[i:i+4] in ('KLMN', 'LMNK', 'MNKL', 'NKLM'):


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1255
🔤🔤🔤🔤🔤🔤🔤🔤 🔤🔤 🔤🔤🔤🔤🔤🔤🔤

🚩 Ребята, завтра я буду помогать вам, отвечать на вопросы и решать задания в прямом эфире. Присоединяйтесь к нашему чату и присылайте все ваши вопросы/задания туда, постараюсь оперативно отвечать и делать разборы.
Please open Telegram to view this post
VIEW IN TELEGRAM
1266
Дорогие подписчики! Наступил час, когда ваш труд и усердие будут испытаны экзаменом. Помните, что вы проделали огромную работу, и теперь настал момент продемонстрировать всю свою подготовку. Верьте в себя, вы способны преодолеть любые трудности! Ни пуха, ни пера 🍀
Please open Telegram to view this post
VIEW IN TELEGRAM
331066
🚩 Разбор ДВ #2024 номера #8 по информатике #ЕГЭ8

🚩 Условие задачи:
Определите количество 9-тиричных б-тизначных чисел, которые не начинаются с нечетных цифр, не оканчиваются цифрами 2 или 3, содержат не менее двух цифр 1



👩‍💻 Код решения:
from itertools import *
cnt = 0
for x in product('012345678', repeat=6):
num = ''.join(x)
if num[0] != "0" and num[0] not in '1357':
if num[-1] not in '23' and num.count('1') >= 2:
cnt += 1
print(cnt)

# Ответ: 19868


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

1. from itertools import *
Импорт модуля `itertools`, который предоставляет функции для работы с итераторами.


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


3. for x in product('012345678', repeat=6):
Цикл `for`, в котором переменная `x` принимает все возможные комбинации длиной 6 из элементов '012345678', сгенерированные с помощью функции `product` из модуля `itertools`.


4. num = ''.join(x)
Создание строки `num`, объединяя элементы кортежа `x` в одну строку.


5. if num[0] != "0" and num[0] not in '1357':
Проверка условия: первая цифра числа `num` не равна "0" и не содержится в строке '1357'.


6. if num[-1] not in '23' and num.count('1') >= 2:
Дополнительная проверка: последняя цифра числа `num` не содержится в строке '23' и количество цифр '1' в числе `num` больше или равно 2.


7. cnt += 1
Увеличение значения переменной `cnt` на 1 в случае, если число `num` удовлетворяет всем условиям.


8. print(cnt)
Вывод на экран значения переменной `cnt`, которая содержит количество чисел `num`, удовлетворяющих заданным условиям.


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
832