Отличные новости: мы внесли изменения в систему навигации на нашем канале. Теперь каждая новая задача будет обозначаться уникальным хэштегом для вашего удобства. Вы можете сортировать задачи по номерам (типам) и по площадке публикации, например:
#reshu - Решу ЕГЭ,
#kege - kompege.ru,
#yandex - нейросеть Яндекса
#useful Просто воспользуйтесь функцией поиска на канале, чтобы легко найти интересующую вас статью или разбор задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Классная задача с сайта РЕШУ ЕГЭ, что-то аналогичное было в прошлом году на реальном экзамене!
Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
bad = alphabet[24:]
s = open('24.txt').readline()
for x in bad:
s = s.replace(x, ' ')
print(max([len(x) for x in s.split() if x[0] != '0']))
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Недавно я наткнулся на базовое, но интересное условие с сайта kompege.ru (номер задачи
8954
). Стало интересно, какой вариант решения вы используете чаще всего!Условие:
"Найдите количество пар, в которых только одно число кратно 7"
.Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
Делитесь своими вариантами в комментариях 🫰
Anonymous Poll
43%
1️⃣ if (x % 7 == 0) + (y % 7 == 0) == 1:
27%
2️⃣ if (x % 7 == 0) != (y % 7 == 0):
17%
3️⃣ if (x % 7 == 0) ^ (y % 7 == 0):
27%
4️⃣ if sum([e % 7 == 0 for e in [x, y]]) == 1:
This media is not supported in your browser
VIEW IN TELEGRAM
В Python генератор списков - это компактный способ создания списков с использованием выражений в одну строку. Такие генераторы позволяют создавать списки с минимальным количеством кода, что делает его более читаемым и эффективным. Синтаксис генератора списка включает выражение, цикл и (при необходимости) условие.
# Создание списка квадратов четных чисел от 0 до 9
even_squares = [x**2 for x in range(10) if x % 2 == 0]
# Вывод результатов
print(even_squares)
В этом примере
if x % 2 == 0
добавляет в список только квадраты четных чисел, создавая список [0, 4, 16, 36, 64]
.Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13 5 5 3❤2
Метод
.append()
используется для добавления элемента в конец списка. Пример: my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # Вывод: [1, 2, 3, 4]
Можно реализовать через конкатенацию (склеивание) списков:
my_list = [1, 2, 3]
my_list += [4]
print(my_list) # Вывод: [1, 2, 3, 4]
Метод
.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()
возвращает количество вхождений заданного элемента в список. Пример:my_list = [1, 2, 2, 3, 4, 2]
count_of_twos = my_list.count(2)
print(count_of_twos) # Вывод: 3
Метод .
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()
возвращает индекс первого вхождения заданного элемента в списке. Пример:my_list = [1, 2, 3, 2, 4]
index_of_two = my_list.index(2)
print(index_of_two) # Вывод: 1
Метод
.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
В канале одного из них вы можете прочитать о том, почему я люблю информатику.
Репетитор по математике
Репетитор по русскому языку
Репетитор по химии
Репетитор по биологии
Репетитор по физике
Можете поучаствовать в другом опросе, если ведёте канал.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Задача 23 номера с сайта kompege.ru автор: М. Ишимов
Интересная, но не очень сложная, рекомендую ознакомиться!
Код решения:
def F(a, b, flag):
if a >= b:
return a == b
if flag == "B":
return F(a + 2, b, "A") + F(a * 3, b, "C")
return F(a+2, b, "A") + F(a**2, b, "B") + F(a*3, b, "C")
print(F(2, 64, 0))
Please open Telegram to view this post
VIEW IN TELEGRAM
Круто! Да это же круто!
Я реально при*****
Это было не просто смело. Это было п***** как смело
Сомнительно, но ОКЭЙ
Мне вообше это не интересно
Я уважаю, что они делают, но я этого не понимаю
Блин, я заплакал
Какая разница? Вот какая разница?
Конечно мы все виноваты в этом п******
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Задача 8 номера с сайта kompege.ru автор: М. Ишимов
Простенькая и нативно понятная задачка базового уровня, зато удобно и наглядно видно, как работать с ней через itertools.
Код решения:
import itertools
count = 0
for s in itertools.product('01234567', repeat=5):
slovo = ''.join(s)
if slovo[0] != '0':
if slovo[0] not in '1357':
if slovo[-1] not in '26':
if slovo.count('7') <= 2:
count += 1
print(count)
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Дублирую условие для вашего удобства, переносите в
Михаил составляет 7-значные числа, используя цифры 2, 3, 0, 5, 9, 7, 8.
Каждую цифру нужно использовать ровно 1 раз.
Число не может содержать четные цифры подряд и должно заканчиваться на 7.
Сколько различных чисел может сформировать Михаил?
Правильное решение опубликую сегодня вечером в комментариях, а пока что предлагаю выбрать правильный ответ
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Срезы в Python представляют собой мощный механизм для извлечения подстрок, подсписков или любых других подпоследовательностей из итерируемых объектов.
Синтаксис срезов включает в себя указание начального и конечного индексов, а также опциональный шаг (step):
срез = объект[начальный_индекс:конечный_индекс:шаг]
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Извлечение подсписка с индексами 2-5 (не включая 5)
subset1 = my_list[2:5]
print(subset1) # Вывод: [3, 4, 5]
my_string = "Hello, World!"
# Извлечение подстроки с индексами 7-12 (не включая 12)
substring1 = my_string[7:12]
print(substring1) # Вывод: "World"
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
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
This media is not supported in your browser
VIEW IN TELEGRAM
Сложная задачка 5 номера с сайта kompege.ru, на примере этой задачи мы можем увидеть где нам могут пригодиться генераторы списков. А еще в конце разбора опубликовал более универсальный способ решения!
for n in range(2, 10000):
s = bin(n)[2:]
chet1 = [x for x in s[1::2] if x == '1']
nechet0 = [x for x in s[0::2] if x == '0']
r = abs(len(chet1) - len(nechet0))
if r == 5:
print(n)
break
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Дублирую условие для вашего удобства, переносите в
КЕГЭ № 1515 (Уровень: Средний)
Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N.
2. Запись «переворачивается», то есть читается справа налево.
Если при этом появляются ведущие нули, они отбрасываются.
3. Полученное число переводится в десятичную запись и выводится на экран.
Какое наименьшее число, превышающее 1000, после обработки автоматом даёт результат 29?
Правильное решение опубликую сегодня вечером в комментариях, а пока что предлагаю выбрать правильный ответ
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM