.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
Информатика | Илья Андрианов | itpy 🧑💻
Стало интересно сколько баллов планируете набрать на ЕГЭ по информатике? 🤔
А сколько времени вы уделяли подготовке? 🤨
Anonymous Poll
11%
5-10 минут - решал домашку в школе
10%
Чуть больше часа в неделю
24%
2-3 часа в неделю
7%
Стабильно час каждый день
37%
Два и более часов в день
11%
Вообще не готовился 😎
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Ссылка на полную версию шпаргалки/методички на Notion.
Поставь
s = open('24.txt').readline()
s = s.replace('1', '2').replace('W', 'R')
print(max([len(x) for x in s.split()]))
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
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
10 ЧАСОВ МОТИВАЦИИ СДАТЬ ЕГЭ!! от Игоря Войтенко!
сдай ЭГЕ ЕГЭ!!!!!!!!!!!!!!!!!!!!! ЕГЕ ЭГЭ ЙЕГЭ ЙОГА!!!!!!!!!!!!!!!!
upd1. я дурачек. там черный экран так как я плохо зациклировал.. :(
upd2. видео рендерилось 7 часов. это в качестве 480p и весит оно 18 гигабайт, так бы оно рендерилось 25+ часов (720p) и…
upd1. я дурачек. там черный экран так как я плохо зациклировал.. :(
upd2. видео рендерилось 7 часов. это в качестве 480p и весит оно 18 гигабайт, так бы оно рендерилось 25+ часов (720p) и…
Есть тут люди, которые "с удовольствием" ждут ЕГЭ?
Ставь:
Please open Telegram to view this post
VIEW IN TELEGRAM
Дорогие подписчики! Наступил час, когда ваш труд и усердие будут испытаны экзаменом. Помните, что вы проделали огромную работу, и теперь настал момент продемонстрировать всю свою подготовку. Верьте в себя, вы способны преодолеть любые трудности! Ни пуха, ни пера 🍀
Please open Telegram to view this post
VIEW IN TELEGRAM
Определите количество 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
Для какого наименьшего натурального числа А логическое выражение истинно при любом целом положительном значении переменной х:
(ДЕЛ(x, 2) → ¬ДЕЛ(x, 5) ) ∨ (x + A >= 70)
def F(x, A):
return (((x % 2 == 0) <= (x % 5 != 0)) or (x + A >= 70))
for A in range(1, 1000):
if all(F(x, A) for x in range(1, 10000)):
print(A)
break
# Ответ: 60
1.
def F(x, A):
Объявление функции `F` с аргументами `x` и `A`.
2.
return (((x % 2 == 0) <= (x % 5 != 0)) or (x + A >= 70))
Возвращение значения, которое зависит от выполнения логических условий: (x четное <= x не делится на 5) или (сумма x и A больше или равна 70).
3.
for A in range(1, 1000):
Цикл `for`, в котором переменная `A` принимает значения от 1 до 999.
4.
if all(F(x, A) for x in range(1, 10000)):
Проверка, что для всех значений `x` от 1 до 9999 функция `F(x, A)` возвращает `True`.
5.
print(A)
Вывод на экран значения `A`, при котором условие для всех `x` выполняется.
6.
break
Прерывание цикла после первого найденного значения `A`, удовлетворяющего условию для всех `x`.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которые обозначены латинскими буквами:
А. Вычти 2
В. Найди целую часть от деления на 2
Сколько существует программ, для которых при исходном число 30 результатом является число 1, и при этом траектория вычислений содержит число 14?
def F(a, b):
if a <= b:
return a == b
return F(a-2, b) + F(a//2, b)
print(F(30, 14) * F(14, 1))
# Ответ: 36
1.
def F(a, b):
Объявление функции `F` с аргументами `a` и `b`.
2.
if a <= b:
Проверка условия: если `a` меньше или равно `b`.
3.
return a == b
Возвращение результата сравнения `a` и `b`, если они равны.
4.
return F(a-2, b) + F(a//2, b)
Возвращение суммы рекурсивных вызовов функции `F` с аргументами `a-2, b` и `a//2, b`.
5.
print(F(30, 14) * F(14, 1))
Вывод на экран произведения результатов вызовов функции `F` с аргументами `(30, 14)` и `(14, 1)`.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Сеть задана IP-адресом 106.184.0.0 и сетевой маской 255.248.0.0.
Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 2?
from ipaddress import *
net = ip_network("106.184.0.0/255.248.0.0", 0)
cnt = 0
for ip in net:
if f'{ip:b}'.count('1') % 2 != 0:
cnt += 1
print(cnt)
# Ответ: 262144
1.
from ipaddress import *
Импорт всех объектов из модуля `ipaddress`, который предоставляет классы для работы с IP-адресами и сетями.
2.
net = ip_network("106.184.0.0/255.248.0.0", 0)
Создание объекта сети IP с помощью функции `ip_network`, где указаны начальный IP-адрес "106.184.0.0" и маска подсети "255.248.0.0".
3.
cnt = 0
Инициализация переменной `cnt` для подсчета количества IP-адресов с определенным свойством.
4.
for ip in net:
Цикл `for`, который проходит по всем IP-адресам в созданной сети `net`.
5.
if f'{ip:b}'.count('1') % 2 != 0:
Проверка условия: если количество единиц в двоичном представлении IP-адреса `ip` нечетное.
6.
cnt += 1
Увеличение счетчика `cnt` на 1, если условие из предыдущей строки выполнено для текущего IP-адреса.
7.
print(cnt)
Вывод на экран количества IP-адресов, для которых количество единиц в двоичном представлении нечетное.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Алгоритм вычисления значения функции F[n], где п - натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1
F(n) = 2 * n * F(n - 1), если п >1
Чему равно значение выражения (F(2024) - 4 * F(2023)) / F(2022) ?
from functools import *
@lru_cache(None)
def F(n):
if n == 1:
return 1
if n > 1:
return 2 * n * F(n - 1)
for i in range(2025):
F(i)
print((F(2024) - 4 * F(2023)) // F(2022))
# Ответ: 16362024
1.
from functools import *
Импорт модуля `functools`, который предоставляет несколько полезных функций, связанных с функциональным программированием.
2.
@lru_cache(None)
Декоратор `@lru_cache(None)`, который используется для кэширования результатов функции `F`, чтобы избежать повторных вычислений.
3.
def F(n):
Объявление функции `F` с аргументом `n`.
4.
if n == 1:
Проверка условия: если `n` равно 1.
5.
if n > 1:
Проверка условия: если `n` больше 1.
6.
return 2 * n * F(n - 1)
Возвращение результата умножения `2 * n` на рекурсивный вызов функции `F` с аргументом `(n - 1)`.
7.
for i in range(2025):
Цикл `for`, который проходит по значениям от 0 до 2024 (не включая 2025).
8.
F(i)
Вызов функции `F` для каждого значения `i` в диапазоне от 0 до 2024.
9.
print((F(2024) - 4 * F(2023)) // F(2022))
Вывод на экран результата выражения `(F(2024) - 4 * F(2023)) // F(2022)`, которое содержит вызовы функции `F` с различными аргументами.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а] Если сумма цифр двоичной записи числа четная, то к этой записи справа дописывается 0, и затем два левых разряда двоичной записи заменяются на 10.
б) Если сумма цифр двоичной записи числа нечетная, то к этой записи справа дописывается 1, а затем два левых разряда двоичной записи заменяются на 11. Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 20.
R = []
for n in range(2000):
s = bin(n)[2:]
if s.count('1') % 2 == 0:
s = '10' + s[2:] + '0'
else:
s = '11' + s[2:] + '1'
r = int(s, 2)
if r < 20:
R.append(n)
print(max(R))
# Ответ: 12
1.
R = []
Создание пустого списка `R`, в который будут добавляться значения.
2.
for n in range(2000):
Цикл `for`, который проходит по значениям от 0 до 1999.
3.
s = bin(n)[2:]
Преобразование числа `n` в двоичное представление и сохранение его в переменной `s`, исключая первые два символа, которые обозначают приставку "0b".
4.
if s.count('1') % 2 == 0:
Проверка условия: если количество единиц в строке `s` делится на 2 без остатка.
5.
s = '10' + s[2:] + '0'
Изменение строки `s`, добавляя приставку "10" в начало и "0" в конец исходной строки `s`, начиная с третьего символа.
6.
else:
Выполняется, если условие в пункте 4 не выполнено.
7.
s = '11' + s[2:] + '1'
Изменение строки `s`, добавляя приставку "11" в начало и "1" в конец исходной строки `s`, начиная с третьего символа.
8.
r = int(s, 2)
Преобразование строки `s` из двоичного представления в целое число и сохранение результата в переменной `r`.
9.
if r < 20:
Проверка условия: если значение `r` меньше 20.
10.
R.append(n)
Добавление значения `n` в список `R`.
11.
print(max(R))
Вывод на экран максимального значения из списка `R`.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Значение арифметического выражения 3**100 - х, где х - целое положительное число, не превышающее 2030, записали в троичной системе счисления.
Определите наименьшее значение х, при котором в троичной записи числа, являющегося значением данного арифметического выражения, содержится ровно два нуля.
В ответе запишите число в десятичной системе счисления.
for x in range(1, 2030):
n = 3**100 - x
R = []
while n > 0:
R = [n % 3] + R
n //= 3
if R.count(0) == 2:
print(x)
break
# Ответ: 9
1.
for x in range(1, 2030):
Цикл `for`, который проходит по значениям `x` от 1 до 2029.
2.
n = 3**100 - x
Вычисление значения `n` как разности между `3` в степени `100` и `x`.
3.
R = []
Создание пустого списка `R`, который будет содержать цифры в троичной системе счисления.
4.
while n > 0:
Цикл `while`, который выполняется до тех пор, пока `n` больше нуля.
5.
R = [n % 3] + R
Добавление остатка от деления числа `n` на 3 в начало списка `R`.
6.
n //= 3
Целочисленное деление числа `n` на 3 для перехода к следующей цифре троичной записи.
7.
if R.count(0) == 2:
Проверка условия: если в списке `R` ровно два раза встречается цифра 0.
8.
print(x)
Вывод значения `x`, которое соответствует условиям задачи.
9.
break
Прерывание цикла, если было найдено первое подходящее значение `x`.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Дано арифметическое выражение:
123XAB_31 + 3CEX321_31
Переменная х в каждом числе обозначает неизвестную цифру 31-ричной системы счисления. Необходимо найти наибольшее возможное значение х, при котором значение данной суммы кратно 17. В ответе необходимо указать частное от деления значения данной суммы на 17 в десятичной системе счисления. Основание системы счисления указывать не нужно.
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for x in alphabet[:31]:
A = int(f'123{x}AB', 31)
B = int(f'3CE{x}321', 31)
if (A + B) % 17 == 0:
print((A + B) // 17)
# Ответ: 179431046
1.
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создание отсортированного списка `alphabet`, содержащего символы цифр и заглавных латинских букв.
2.
for x in alphabet[:31]:
Цикл `for`, который перебирает первые 31 элемент из списка `alphabet`.
3.
A = int(f'123{x}AB', 31)
Преобразование строки `f'123{x}AB'` в число в системе счисления 31 и сохранение этого числа в переменной `A`.
4.
B = int(f'3CE{x}321', 31)
Преобразование строки `f'3CE{x}321'` в число в системе счисления 31 и сохранение этого числа в переменной `B`.
5.
if (A + B) % 17 == 0:
Проверка условия: если сумма чисел `A` и `B` делится на 17 без остатка.
6.
print((A + B) // 17)
Вывод на экран частного от деления суммы чисел `A` и `B` на 17.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите программу, которая перебирает целые числа, большие 600 000, в порядке возрастания и ищет среди них такие, среди делителей которых есть хотя бы одно число, оканчивающееся на 7, но не равное 7 и самому числу. Необходимо вывести первые 5 таких чисел, и наименьший делитель, оканчивающийся на 7, не равный 7 и самому числу.
Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем — наименьший делитель, оканчивающийся на 7, не равный 7 и самому числу.
def divisors(x):
div = []
for j in range(2, int(x ** 0.5) + 1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))
cnt = 0
for n in range(600001, 10**10):
d = [x for x in divisors(n) if x % 10 == 7 and x != 7]
if len(d) > 0:
print(n, min(d))
cnt += 1
if cnt == 5:
break
# Ответ:
# 600001 437
# 600002 47
# 600003 1227
# 600005 217
# 600012 16667
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Пусть S - последовательность из N целых чисел, пронумерованных подряд, начиная с 1. Обозначим S_i,S_j, S_k как три элемента последовательности S, где і < j < k. Определите в последовательности S три таких члена S_i, S_j, S_k, что S_i > S_j, S_k > S_j и значение выражения (S_i -S_i) + (S_k-S_j) максимально.
Гарантируется, что в последовательности есть три числа S_i, S_j, S_k, удовлетворяющие условию задачи.
Входные данные
Дано два входных файла [файл А и файл В), каждый из которых в первой строке содержит число N [5 < N < 10 000 000] - количество целых чисел. Каждая из следующих N строк содержит одно целое число, не превышающее по модулю 1000.
В ответ укажите два числа: сначала значение искомой величины для файла А, затем - для файла В.
f = open('27.txt')
n = int(f.readline())
M = [int(i) for i in f]
res = 0
for i in range(n):
for j in range(i+1, n):
for k in range(j+1, n):
s1 = M[i]
s2 = M[j]
s3 = M[k]
if s1 > s2 < s3:
res = max(res, (s1 - s2) + (s3 - s2))
print(res)
res = 0
m1 = m2 = m3 = r1 = 0
for i in range(n - 2):
m1 = max(m1, M[i])
if m1 - M[i+1] > r1:
r1 = m1 - M[i + 1]
m2 = M[i + 1]
m3 = M[i + 2]
res = max(res, m3 - m2 + r1)
print(res)
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот проголосовать на выборах можно в любой удобной точке страны, просто сделай пару кликов на Госуслугах для выбора другой локации. (Кстати, можно голосовать и онлайн).
Было бы славно, если бы существовала возможность приехать сдать ЕГЭ в Москве или Калининграде🙂
Было бы славно, если бы существовала возможность приехать сдать ЕГЭ в Москве или Калининграде
Please open Telegram to view this post
VIEW IN TELEGRAM
Текстовый файл состоит из заглавных букв латинского алфавита А, B, C, D, E и F.
Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых пара символов DE (в указанном порядке) встречается не более 240 раз.
Для выполнения этого задания следует написать программу.
s = open('24.txt').readline()
s = s.replace('DE', 'D E').split()
maxi = -1
for i in range(len(s)):
r = ''.join(s[i:i+241])
maxi = max(maxi, len(r))
print(maxi)
1.
s = open('24.txt').readline()
Чтение строки из файла '24.txt' и сохранение этой строки в переменной `s`.
2.
s = s.replace('DE', 'D E').split()
Замена подстроки 'DE' на 'D E' в строке `s` с последующим разделением строки на список слов.
3.
maxi = -1
Инициализация переменной `maxi` c начальным значением -1 для хранения максимальной длины подстроки.
4.
for i in range(len(s)):
Цикл `for`, который проходит по индексам элементов в списке `s`.
5.
r = ''.join(s[i:i+241])
Создание строки `r`, объединив элементы списка `s` от индекса `i` до индекса `i+241`.
6.
maxi = max(maxi, len(r))
Обновление переменной `maxi` значением, равным максимуму между текущим значением `maxi` и длиной строки `r`.
7.
print(maxi)
Вывод наибольшей длины строки `r` из всех подстрок в переменной `s`.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM