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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
🚩🚩 Разбор этого номера #yandex по информатике #ЕГЭ12
Автор: Яндекс Учебник
Уровень:
Простой

🚩 Условие задачи:
ПОКА нашлось (44) ИЛИ нашлось (9299) ИЛИ нашлось (49)
заменить (49, 944)
заменить (44, 2)
заменить (9299, 4)

На вход приведённой выше программе поступает строка, которая начинается с цифры «4», а затем содержит n цифр «9» (3<n<1 000).

Определите, сколько различных строк может получиться в результате её работы.


👩‍💻 Код решения:
my_set = set()
for n in range(4, 1000):
s = '4' + '9' * n

while '44' in s or '9299' in s or '49' in s:
s = s.replace('49', '944', 1)
s = s.replace('44', '2', 1)
s = s.replace('9299', '4', 1)
my_set.add(s)
print(len(my_set))

Ответ: 3

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

1⃣ my_set = set()
- Создание пустого множества my_set для хранения уникальных строк


2⃣ for n in range(4, 1000):
- Цикл по значениям n от 4 до 999 включительно


3⃣ s = '4' + '9' * n
- Создание строки, состоящей из цифры '4' и n цифр '9' (например, при n=4: '49999')


4⃣ while '44' in s or '9299' in s or '49' in s:
- Цикл выполняется, пока в строке есть хотя бы одна из подстрок: '44', '9299' или '49'


5⃣ s = s.replace('49', '944', 1)
- Замена первой найденной подстроки '49' на '944'


6⃣ s = s.replace('44', '2', 1)
- Замена первой найденной подстроки '44' на '2'


7⃣ s = s.replace('9299', '4', 1)
- Замена первой найденной подстроки '9299' на '4'


8⃣ my_set.add(s)
- Добавление полученной строки в множество (автоматически исключает дубликаты)


0⃣ print(len(my_set))
- Вывод количества уникальных строк в множестве


#⃣ Полный список разборов в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
25❤‍🔥4🔥2
📱 Что такое замыкание в Python? #useful

🧠 Объявление: функция внутри функции, которая запоминает переменные из внешней области


Пример: создание счетчика
def create_counter():
count = 0 # Внутреннее состояние
def counter():
nonlocal count
count += 1
print("Текущий счет:", count)
return counter


💻 Использование созданного счетчика
my_counter = create_counter()
my_counter() # Текущий счет: 1
my_counter() # Текущий счет: 2



Что происходит?
Каждый вызов my_counter() увеличивает внутренний счетчик, который "запомнен" внутри функции. Это и есть замыкание!


🔍 Зачем это нужно?
- Хранить состояние между вызовами
- Создавать "приватные" переменные
- Сделать код более модульным и безопасным


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥41