С Новым годом, друзья! 🎄
Пусть 2025 год дарит вам вдохновение, исполнение желаний и незабываемые впечатления!🎅
Картинку сгенерировал через MidJourney👨💻
Пусть 2025 год дарит вам вдохновение, исполнение желаний и незабываемые впечатления!
Картинку сгенерировал через MidJourney
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14 6🔥5👍4
Автор: Яндекс Учебник
Уровень: Средний
Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.
В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.
Интересный пример, так как нам приходится рассматривать не только пару/тройку символов, как в основных задачах, но сразу 6-ку символов!
M = [int(s) for s in open('files/17.txt')]
R = []
for i in range(len(M)-5):
x, y, z, w, r, t = M[i:i+6]
if (z + w) > (x + y) and (z + w) > (r + t):
if z + w > 0 and x + y > 0 and r + t > 0:
R.append(z * w)
print(len(R), min(R))
# Ответ: 610 -123157359
M = [int(s) for s in open('files/17.txt')]
- Открывает файл 'files/17.txt', читает его и преобразует каждую строку в целое число, создавая список M.
R = []
- Создает пустой список R для хранения результатов, которые удовлетворяют условиям.
for i in range(len(M)-5):
- Запускает цикл по элементам списка M, при этом гарантируется, что для каждой итерации хватит шести элементов.
x, y, z, w, r, t = M[i:i+6]
- Извлекает шесть подряд идущих элементов из списка M, начиная с позиции i, и присваивает их переменным x, y, z, w, r и t.
if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяет, что сумма z и w больше суммы x и y, а также больше суммы r и t.
if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительно проверяет, что каждая из сумм z + w, x + y и r + t больше нуля.
R.append(z * w)
- Если условия выполнены, добавляет произведение z и w в список R.
print(len(R), min(R))
- Выводит количество элементов в списке R и минимальное значение из этого списка.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5🔥3
Стало интересно узнать, какие прототипы 17-го номера вызывают у вас наибольшие сложности 🤔
Anonymous Poll
30%
49%
82%
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []
for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))
print(len(result), max(result))
# Ответ: 260 106865
numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.
filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.
result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.
for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.
# x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].
if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.
if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.
result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.
print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥7 4❤🔥3
Автор: (Л. Шастин)
Уровень: Средний
Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности.
В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Мне эта задача очень понравилась, так как присутствует условие про номера элементов последовательности. Реализовать это не сложно, как оказалось, зато какая красота получилась! Обратите внимание, что происходит смещение по индексу на +1 элемент*
R = []
M = [int(x) for x in open('17.txt')]
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))
# Ответ: 1000 811
R = []
Инициализация пустого списка R, который будет хранить результаты.
M = int(x) for x in open('0. files/17.txt')
Открытие файла '0. files/17.txt', чтение каждой строки, преобразование их в целые числа и сбор этих чисел в список M.
for i in range(len(M)-1):
Начало цикла по всем элементам списка M, кроме последнего, с индексами от 0 до (длина M - 2).
x, y = Mi, Mi+1
Присваивание текущего элемента M и следующего элемента M соседним переменным x и y соответственно.
i, j = i+1, i+2
Расчет значений индексов i и j для проверки условия следующей строки.
if (i + j) % 10 == max(M) % 10:
Условие: если сумма индексов i и j даёт остаток от деления на 10, равный остатку от деления максимального элемента M на 10, выполнить следующий блок.
R.append(abs((x+y) - (i+j)))
Если условие выполнено, вычислить разность между суммой элементов x и y и суммой индексов i и j, взять модуль этой разности и добавить в список R.
print(len(R), min(R))
Вывод на экран количества элементов в списке R и минимального значения в этом списке R.
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь сдать ЕГЭ по математике на 80+?
🗣️ Хочу лично порекомендовать Вам репетитора, который точно знает, как сдать ЕГЭ на 80+, даже если вы только решили начать подготовку.
👩💻Дарья – преподает математику более 5 лет, а сама заканчивает в этом году Бауманку, поэтому точно знает все о поступлении на технические и экономические специальности, а ее ученики учатся в топовых вузах России: МИФИ, МГУ, ВШЭ💋
📚Подробную информацию о занятиях по подготовке к экзаменах можно узнать в ее канале, а также всем новым подписчикам Дарья отправляет полезные материалы для подготовки к экзаменам. Нужно только подписаться на канал и написать сообщение в личку💋
Не откладывай подготовку — занимайся с лучшими преподавателями уже сейчас и совершенствуйся с каждым днём!
👩💻Дарья – преподает математику более 5 лет, а сама заканчивает в этом году Бауманку, поэтому точно знает все о поступлении на технические и экономические специальности, а ее ученики учатся в топовых вузах России: МИФИ, МГУ, ВШЭ
📚Подробную информацию о занятиях по подготовке к экзаменах можно узнать в ее канале, а также всем новым подписчикам Дарья отправляет полезные материалы для подготовки к экзаменам. Нужно только подписаться на канал и написать сообщение в личку
Не откладывай подготовку — занимайся с лучшими преподавателями уже сейчас и совершенствуйся с каждым днём!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍4 3
This media is not supported in your browser
VIEW IN TELEGRAM
12249
#kege по информатике #ЕГЭ17Автор: ЕГКР 16.12.23
Уровень: Базовый
Определите количество троек элементов последовательности, в которых хотя бы один из трёх элементов оканчивается на 3, а сумма элементов тройки не больше максимального элемента последовательности, являющегося пятизначным числом, которое оканчивается на 3.
В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
В данной задаче очень удобно собрать отдельный список для элементов оканчивающихся на 3 (список А) и потом пробежать все лежащие в нем элементы, чтоб добавить условие с пятизначными символам (список D).
D = [int(x) for x in open('0. files/17.txt')]
R = []
A = [x for x in D if abs(x) % 10 == 3]
B = [x for x in A if len(str(abs(x))) == 5]
for i in range(len(D) - 2):
x, y, z = D[i], D[i + 1], D[i + 2]
if ((x in A) + (y in A) + (z in A)) >= 1:
if (x + y + z) <= max(B):
R.append(x + y + z)
print(len(R), max(R))
# Ответ: 1767 99081
D = int(x) for x in open('0. files/17.txt')
- Создаем список D, содержащий целые числа из файла '17.txt'.
R = [ ]
- Инициализируем пустой список R для хранения результатов.
A = x for x in D if abs(x) % 10 == 3
- Создаем список A, содержащий все числа из D, заканчивающиеся на 3.
B = x for x in A if len(str(abs(x))) == 5
- Создаем список B, содержащий только те числа из A, которые являются пятиместными.
for i in range(len(D) - 2):
- Начинаем цикл для перебора элементов списка D с индексом i от 0 до len(D) - 3.
x, y, z = Di, Di + 1, Di + 2
- Присваиваем переменным x, y, z текущие и следующие два элемента из D.
if ((x in A) + (y in A) + (z in A)) >= 1:
- Проверяем, содержится ли хотя бы одно из значений x, y, или z в списке A.
if (x + y + z) <= max(B):
- Проверяем, меньше ли сумма x, y и z, чем максимальный элемент в B.
R.append(x + y + z)
- Если обе проверки прошли, добавляем сумму x, y и z в список R.
print(len(R), max(R))
- Выводим количество элементов в списке R и максимальное значение из этого списка.
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
2 9❤🔥4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: kompege.ru
Уровень: Средний
Текстовый файл состоит из символов A, B, C, D и E.
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых комбинация символов AB встречается ровно 50 раз.
Важно после разбиения не забыть добавить по одному элементу справа и слева к строке r, так как мы удаляем пары символов, а отдельные символы должны оставить.
s = open('0. files/24.txt').readline()
s = s.split('AB')
maxi = 0
for i in range(len(s)-50):
r = 'B' + 'AB'.join(s[i:i+51]) + 'A'
maxi = max(maxi, len(r))
print(maxi)
# Ответ: 10128
s = open('0. files/24.txt').readline()
# Открываем файл '0. files/24.txt' и читаем первую строку.
s = s.split('AB')
# Разделяем строку на подстроки по разделителю 'AB' и сохраняем результат в список.
maxi = 0
# Инициализируем переменную maxi, которая будет содержать максимальную длину найденной строки.
for i in range(len(s)-50):
# Запускаем цикл, который будет проходить по индексам списка s от 0 до длины списка минус 50.
r = 'B' + 'AB'.join(si:i+51) + 'A'
# Формируем новую строку r, представляющую собой соединение элементов списка s от текущего индекса i до i+50 с добавлением 'B' в начале и 'A' в конце.
maxi = max(maxi, len(r))
# Обновляем значение maxi, если длина текущей строки r больше предыдущего значения maxi.
print(maxi)
# Выводим максимальную длину строки, соответствующую заданным условиям.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10 4❤🔥2 2
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Шастин Л
Уровень: Средний
Текстовый файл состоит из символов A, C, D, F и O.
Определите максимальное количество идущих подряд символов, среди которых не более 5 пар вида согласная + гласная в прилагаемом файле.
Чуть более сложная версия прошлой задачи.
s = open('0. files/24.txt').readline()
s = s.replace('C', 'D').replace('F', 'D')
s = s.replace('O', 'A')
s = s.split('DA')
maxi = 0
for i in range(len(s)-5):
r = 'A' + 'DA'.join(s[i:i+6]) + 'D'
maxi = max(maxi, len(r))
print(maxi)
Ответ: 27
s = open('24.txt').readline()
Открываем файл '0. files/24.txt' и читаем первую строку.
s = s.replace('C', 'D').replace('F', 'D')
Заменяем символы 'C' и 'F' на 'D' во всей строке.
s = s.replace('O', 'A')
Заменяем символ 'O' на 'A' во всей строке.
s = s.split('DA')
Разделяем строку на подстроки по разделителю 'DA' и сохраняем результат в список.
maxi = 0
Инициализируем переменную maxi для хранения максимальной длины найденной строки.
for i in range(len(s)-5):
Запускаем цикл по индексам списка s от 0 до длины списка минус 5.
r = 'A' + 'DA'.join(si:i+6) + 'D'
Формируем новую строку r, соединяя элементы списка s от текущего индекса i до i+5 с добавлением 'A' в начале и 'D' в конце.
maxi = max(maxi, len(r))
Обновляем значение maxi, если длина текущей строки r больше предыдущего значения maxi.
print(maxi)
Выводим максимальную длину строки, соответствующую условиям задачи.
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤🔥9 5 4 1
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: PRO100 ЕГЭ
Уровень: Сложный
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых комбинация символов RO встречается ровно 21 раз, а комбинации символов ORO и ROR ни разу не встречаются.
Если ORO и ROR найдутся в строке, то не нужно отсеивать все строку - необходимо разбить ее и исследовать подстроки по отдельности!
s = open('0. files/24.txt').readline()
s = s.split('RO')
maxi = 0
for i in range(len(s)-21):
r = 'O' + 'RO'.join(s[i:i+22]) + 'R'
if 'ROR' in r or 'ORO' in r:
r = r.replace('ROR', 'RO OR')
r = r.replace('ORO', 'OR RO')
maxi = max(maxi, max([len(x) for x in r.split()]))
print(maxi)
Ответ: 814
s = open('24.txt').readline()
s = s.split('RO')
maxi = 0
for i in range(len(s)-21):
r = 'O' + 'RO'.join(si:i+22) + 'R'
if 'ROR' in r or 'ORO' in r:
r = r.replace('ROR', 'RO OR')
r = r.replace('ORO', 'OR RO')
maxi = max(maxi, max(len(x) for x in r.split()))
print(maxi)
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8 6👍5
Товарищи, важный вопрос! Какой вариант оформления комментариев к коду вам нравится больше: как в прошлом посте (1⃣ от 23 февраля) или как в позапрошлом (2⃣ от 22 февраля)? 🤔
Anonymous Poll
52%
48%
This media is not supported in your browser
VIEW IN TELEGRAM
14513
#kege по информатике #ЕГЭ24Автор: Л. Шастин
Уровень: Базовый
Назовём маской образец строки, который строится на основании служебных знаков # и &, причём знак # обозначает непустую последовательность из идущих подряд букв, а знак & задает непустую последовательность из идущих подряд цифр.
Определите в прилагаемом файле максимальную длину подстроки, которая соответствует маске #&#.
Очень понравилась эта задача, идея решения заключается в приведении всех букв к одному символу и всех цифр к другому символу. Затем разбиваем полученную последовательность на пары, разделенные пробелами, и убираем лишние цифры справа, после чего находим самую длинную строку.
from string import *
maxi = 0
s = open('0. files/24.txt').readline()
for x in digits:
s = s.replace(x, '&')
for x in ascii_uppercase:
s = s.replace(x, '#')
s = s.replace('&#', '& #')
s = s.split()
for i in range(len(s)-1):
r = ''.join(s[i:i+2])
while r[-1] == '&':
r = r[:-1]
maxi = max(maxi, len(r))
print(maxi)
Ответ: 49
from string import *
maxi = 0
s = open('24.txt').readline()
for x in digits:
s = s.replace(x, '&')
for x in ascii_uppercase:
s = s.replace(x, '#')
s = s.replace('&#', '& #')
s = s.split()
for i in range(len(s)-1):
r = ''.join(s[i:i+2])
while r[-1] == '&':
r = r[:-1]
maxi = max(maxi, len(r))
print(maxi)
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤10🔥3 3👍1
Ребзя, пройдите, пожалуйста, опрос!
Хочу узнать свою аудиторию получше. В особенности понять сколько здесь учеников 8-го и 9-го классов😍
Хочу узнать свою аудиторию получше. В особенности понять сколько здесь учеников 8-го и 9-го классов
Anonymous Poll
2%
Учусь в 8 классе
1%
Учусь в 9 классе
9%
Учусь в 10 классе
61%
Учусь в 11 классе
8%
Уже студент
2%
Родитель
10%
Репетитор Информатики
2%
Репетитор другой предмет
5%
Просто неравнодушный
Новый канал по подготовке к ОГЭ по информатике
Недавний опрос был не просто так - мы готовили для вас кое-что интересное! Вместе с моим другом мы запустили новый канал, который поможет вам подготовиться к ОГЭ по информатике на отлично!
На канале вас ждут:
Скоро я расскажу подробнее о проекте и познакомлю вас с нашим новым автором - экспертом в области информатики, который знает, как сделать подготовку максимально эффективной
Пожалуй уже оставлю ссылку на канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥4 4
К команде itpy присоединился Алексей, @lkeeeey 😀
Молодой специалист работает старшим мобильным разработчиком в проекте Extremum, а также делится своими знаниями и опытом, готовя ребят не только к сдаче экзамена ОГЭ по информатике, но и изучению различных языков прогрмирования (🤩
При поддержке нашей команды itpy он канал:
IT by lkey | itpy👨💻
Молодой специалист работает старшим мобильным разработчиком в проекте Extremum, а также делится своими знаниями и опытом, готовя ребят не только к сдаче экзамена ОГЭ по информатике, но и изучению различных языков прогрмирования (
python, c++, Kotlin, html, css, js
) При поддержке нашей команды itpy он канал:
IT by lkey | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12 5🔥4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Решу ЕГЭ
Уровень: Базовый
Все 5-буквенные слова, составленные из букв Б, К, Ф, Ц, записаны
в алфавитном порядке и пронумерованы. Вот начало списка:
1. БББББ
2. ББББК
3. ББББФ
4. ББББЦ
5. БББКБ
Запишите слово, которое стоит на 486-м месте от начала списка.
Разберем задачу 3 разными способами и каждый выберет, тот способ,который ему понравился.
s = sorted('БКФЦ')
print(s) # ['Б', 'К', 'Ф', 'Ц']
n = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
slovo = a + b + c + d + e
n += 1
if n == 486:
print(n, slovo)
s = sorted('БКФЦ')
s,
содержащий отсортированные символы строки 'БКФЦ'.
print(s) # ['Б', 'К', 'Ф', 'Ц']
s
для проверки.n = 0
n,
который будем использовать для подсчета количества сгенерированных слов.for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
s.
Каждый цикл отвечает за одну позицию в слове.slovo = a + b + c + d + e
slovo
путем объединения символов a, b, c, d, e.
n += 1
n
увеличивается на 1 для каждой новой комбинации.if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.from itertools import *
n = 0
for p in product(sorted('БКФЦ'), repeat=5):
slovo = ''.join(p)
n += 1
if n == 486:
print(n, slovo)
from itertools import *
itertools,
который предоставляет функции для работы с комбинациями.n = 0
n
для подсчета количества сгенерированных слов.for p in product(sorted('БКФЦ'), repeat=5):
product,
которая генерирует все возможные комбинации из символов 'Б', 'К', 'Ф', 'Ц'
с длиной 5 .slovo = ''.join(p)
p
преобразуется в строку slovo
с помощью метода join.
n += 1
n
увеличивается на 1 для каждой новой комбинации.if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.from itertools import *
for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):
slovo = ''.join(p)
if n == 486:
print(n, slovo)
from itertools import *
itertools.
for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):
enumerate,
которая добавляет счетчик n
к каждому элементу, генерируемому функцией product.
Счетчик начинается с 1.slovo = ''.join(p)
p
преобразуется в строку slovo
с помощью метода join.
if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8 4❤3🔥2
Как вам формат больших разборов, хотели бы видеть больше таких полдробных разборов на канале?
Anonymous Poll
75%
19%
6%
This media is not supported in your browser
VIEW IN TELEGRAM
11616
#kege по информатике #ЕГЭ8Автор: М. Ишимов
Уровень: Средний
Сколько существует семнадцатеричных пятизначных чисел, не содержащих в своей записи более двух цифр 1, при этом никакая нечётная цифра не стоит рядом с цифрой 1?
Данный способ позволяет перебрать алфавит и отсортировать его.
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
print(alphabet[3:17:2])
from itertools import *
cnt = 0
for s in product(alphabet[:17], repeat=5):
num = ''.join(s)
if num[0] != '0':
if num.count('1') <= 2:
for a in alphabet[3:17:2]:
num = num.replace(a, '*')
if '1*' not in num and '*1' not in num and '11' not in num:
cnt += 1
print(cnt)
Ответ: 1117608
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
sorted
сортирует символы в алфавитном порядке. print(alphabet[3:17:2])
from itertools import *
itertools,
который предоставляет функции для работы с генерациями комбинаций.cnt = 0
cnt,
которая будет использоваться для подсчета подходящих комбинаций.for s in product(alphabet[:17], repeat=5):
product,
которая генерирует все возможные комбинации длиной 5 из первых 17 символов алфавита (alphabet[:17]
).Каждая комбинация
s
представляет собой кортеж из 5 символов.num = ''.join(s)
s
преобразуется в строку num
с помощью метода join
.if num[0] != '0':
не равен '0'
.if num.count('1') <= 2:
'1'
встречается в строке
не более двух раз.for a in alphabet[3:17:2]:
num = num.replace(a, '*')
заменяется на '*'
в строке.if '1*' not in num and '*1' not in num and '11' not in num:
нет подстрок '1*', '*1'
и '11'
.cnt += 1
увеличивается на 1.print(cnt)
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3❤🔥2
Forwarded from Программирование на Python | itpy 💻
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.
Азим вкатывается в IT | itpy 💻
Наш второй канал по подготовке к ЕГЭ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7 3 3