Найти в Дзене
МОЙ РЕПЕТИТОР

Решение задания №12 ЕГЭ Информатика (Python) [1 часть]

Оглавление

Знакомство с Исполнитель Редактор начнём с типового примера, который является базовым и достаточно простым. Такие варианты заданий можно также решать аналитически. Для решения не требуется знать дополнительных методов и алгоритмов. Язык программирования Python сокращает время и позволяет решить любой вид заданий Исполнитель Редактор.

Что нужно знать?
  • Строковый тип данных (str), конкатенация строк (сoncatenation)
  • Принцип работы циклов: while (пока) | цикла for
  • Конструкция условий: if (если) | else (иначе) | elif (иначе - если)
  • Методы: replace(), count(), sum()

⎔ Тип данных Str в Python

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

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

Чтобы напечатать (' ') данный символ, необходимо нажать на клавишу (э) на английской раскладке клавиатуры (ENG).

Пример создания строки в Python и определения класса переменной (string).
Пример создания строки в Python и определения класса переменной (string).
Подробное объяснение алгоритма создания строки в Python.
Подробное объяснение алгоритма создания строки в Python.

type() — это встроенная функция в Python, которая используется для определения типа переменной или объекта.

<class 'str'> — переменная (string) относится к классу (str) строк.

print() — служебная команда, она используется для вывода текстовой информации на экран или в консоль. Это как сказать компьютеру: «Покажи мне этот текст»

В Python знак равно (=) используется для присваивания значения переменной. Это означает, что после выполнения этой операции переменная будет содержать указанное значение.

⎔ Метод replace() в Python

заменяет указанный символ или подстроку на новую

Синтаксис метода:
str.replace(old, new, k)

  • str — строка, к которой применяется метод
  • old — заменяемый символ или подстрока
  • new — символ или подстрока, на которую происходит замена
  • k (необязательный параметр) — максимальное количество замен

Примеры использования метода replace():

➊ ПРИМЕР

× замена всех букв (L) на буквы (k)

Код программы, которая заменяет все буквы (l) на буквы (k) в строке (a)
Код программы, которая заменяет все буквы (l) на буквы (k) в строке (a)

Результат работы алгоритма: Hello 🠖 Hekko

➋ ПРИМЕР

× замена всех букв (o) на буквы (B)

Алгоритм замены всех букв (о) на буквы (В) в строке string
Алгоритм замены всех букв (о) на буквы (В) в строке string

Результат работы алгоритма: ooAAAoo 🠒 BBAAABB

Если указать параметр (k = 1) в методе replace(), то произойдёт всего одна (первая) замена переменной

➌ ПРИМЕР

Алгоритм замены только одной буквы (о) на букву (В) в строке n
Алгоритм замены только одной буквы (о) на букву (В) в строке n

В чём отличие данного примера от остальных?

В методе replace() указан дополнительный параметр (k) - максимальное количество замен. Если k = 1, то произойдёт только одна замена переменной в строке. Если k = 2, то произойдёт уже две замены переменной в строке. Стоит учитывать, что замена происходит только для первых встретившихся символов.

Результат работы алгоритма: ooAAAoo 🠖 BoAAAoo

Если указать параметр (k = 2) в методе replace(), то произойдут первые 2 замены переменных

➍ ПРИМЕР

× замена первых двух букв (о) на букву (В)

Пример работы метода replace() в IDLE. Параметр k = 2, значит произойдёт 2 замены переменных.
Пример работы метода replace() в IDLE. Параметр k = 2, значит произойдёт 2 замены переменных.

Результат работы алгоритма: ooAAAoo 🠖 AAAoo

➎ ПРИМЕР

× замена первых трёх букв (о) на букву (В)

Пример работы метода replace() в IDLE. Параметр k = 3, значит произойдёт три замены.
Пример работы метода replace() в IDLE. Параметр k = 3, значит произойдёт три замены.

Параметр k = 3, поэтому алгоритм находит первые три буквы (о) и меняет их на буквы (В).

Результат работы алгоритма: AAAooAAAooAo 🠖 AAABBAAABoAo

⎔ Цикл while в Python

используется для многократного выполнения блока кода, пока заданное условие остаётся истинным

Цикл while в Python — это конструкция, которая позволяет выполнять код до тех пор, пока определённое условие верно

В данном примере переменная (m) сначала равна нулю. Условие цикла — m должно быть меньше 3 (m < 3). В теле цикла выводится на экран строка «Привет!» и увеличивается значение переменной (m) на 1. Так будет продолжаться, пока значение (m) не станет равно или больше 3.

Пример работы цикла while в Python (IDLE)
Пример работы цикла while в Python (IDLE)

m += 1 — этот код увеличивает значение переменной m на 1 (можно записать и так: m = m + 1)

count += 5 — этот код увеличивает значение переменной (count) на 5 (count = count + 5)

a -= 3 — этот код уменьшает значение переменной (а) на 3 (a = a - 3)

⎔ Конструкция условий if | else | elif

используется для выполнения определённой команды в зависимости от условия. Условие проверяется, и если оно истинно (True), то выполняется блок кода после if, а если ложно (False) — блок после else

Конструкция if | else

Конструкция if - else в Python
Конструкция if - else в Python
Пример использования конструкции if - else для проверки чётности числа
Пример использования конструкции if - else для проверки чётности числа

% (символ процента) – остаток от деления в Python

[Shift + 5]

Конструкция if | elif

Конструкция if - elif в Python
Конструкция if - elif в Python

elif — это ключевое слово в Python, которое используется для проверки дополнительных условий. Данная конструкция объединяет оператор else и оператор if.

elif = else (иначе) + if (если)

Пример использования конструкции if - elif в Python.
Пример использования конструкции if - elif в Python.

Разбор реального задания из ЕГЭ

Условие:

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 идущих подряд цифр 8? В ответе запишите полученную строку.

Алгоритм:

НАЧАЛО
ПОКА
нашлось (222) ИЛИ нашлось (888)
ЕСЛИ
нашлось (222)
ТО
заменить (222, 8)
ИНАЧЕ
заменить (888, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

Решение:

Идея заключается в том, чтобы перенести алгоритм из задания на язык Python. Смотрим, что написано в каждой строке и переписываем.

  1. Необходимо исходное количество цифр записать в виде строки (str)
  2. Для создания строки, заключить символы в одинарные кавычки
  3. Нахождение символов в строке проверять с помощью условия (if - else - elif)
  4. Замену подстрок выполнять с помощью метода replace()

⇨ 1. СОЗДАТЬ СТРОКУ

-14

Необходимо записать в Python 68 идущих подряд цифр 8. Для этого создадим переменную (s), которая будет отвечать за исходную строку:

s = '8' * 68 # создание строки из 68 идущих подряд цифр 8
'8' — символ. В Python символ является строчным типом переменной (str)
68 — количество символов (целое число)

Пример создания строки, состоящей из четырёх двоек, с помощью операции умножения.
Пример создания строки, состоящей из четырёх двоек, с помощью операции умножения.

* — операция в Python, используется для повторения строки указанное количество раз.

Пример создания строки 123b123b123b с использованием операции умножения (*).
Пример создания строки 123b123b123b с использованием операции умножения (*).

+ — операция в Python, используется для конкатенации (объединения, склеивания) строк.

Пример создания строки 12222 с использованием операции конкатенации (склеивания).
Пример создания строки 12222 с использованием операции конкатенации (склеивания).

С помощью операции конкатенации можно создавать любые виды строк:

Пример создания строки, состоящей из различных символов.
Пример создания строки, состоящей из различных символов.

⇨ 2. ЗАПИСАТЬ ЦИКЛ WHILE

Как переписать условие из задания ЕГЭ на Python.
Как переписать условие из задания ЕГЭ на Python.
  • ПОКА ❯❯ while
    цикл будет работать до тех пор, пока выполняется условие. Для выполнения условия в строке должны быть цифры 222 или 888. Если в условии задачи ЕГЭ написано слово ПОКА, то оно будет означать цикл while в Python
  • нашлось (222) ❯❯ '222' in s
    '222' in s – условие цикла while. Пока в строке есть '222' цикл будет выполнятся
  • ИЛИ ❯❯ or
    логическое условие (или то, или то, или всё вместе), в Python записывается как (or)
  • нашлось (888) ❯❯ '888' in s
    '888' in s – условие цикла while. Пока в строке есть '888' цикл будет выполнятся

⇨ 3. ВЫПОЛНИТЬ АЛГОРИТМ

-20
  • ЕСЛИ нашлось (222) ❯❯ if '222' in s
    if '222' in s – проверка вхождения строки '222' в строку s (наличие в строке)
  • ЕСЛИ – if
    логическое условие (если ..., то ...), в Python записывается как (if)
    в переводе с Английского if = если
-21
  • ИНАЧЕ ЕСЛИ нашлось (288) ❯❯ elif '288' in s
    elif – данная конструкция объединяет оператор else и оператор if
-22
  • ТО заменить (222, 8) ❯❯ s = s.replace('222', '8', 1)
    s = s.replace
    – присваивание нового значения для строки (s)
    '222'
    – что необходимо заменить в строке (old)
    '8' – на что заменить '222' в строке (new)
    1 – сколько раз выполнить замену '222' на '8' (k)

В ЗАДАНИИ❱ ИНАЧЕ заменить(888, 2)
PYTHON❱ else: s = s.replace('888', '2', 1)

  • ИНАЧЕ – else
    выполнение кода после условия, если условие ложно

Как правильно записывать метод replace() для Задания №12 ЕГЭ:

🟥 НЕ ВЕРНО:

При такой записи замена символов не будет сохранятся в новой строке.
При такой записи замена символов не будет сохранятся в новой строке.

ВЕРНО:

Правильное написание кода.
Правильное написание кода.

⇨ 4. ПОЛУЧИТЬ ОТВЕТ

Для получения ответа необходимо использовать стандартную функцию print() из библиотеки Python.

Она нужна для вывода текстовой информации на экран или в консоль. Print() может принимать один или несколько аргументов. Аргументы могут быть представлены в виде: строк, чисел, функций или других объектов.

❗ВАЖНО
В данном примере функцию
print() нужно записать после полного выполнения алгоритма. Чтобы цикл while завершил свою работу и все необходимые символы были заменены. Поэтому, print() необходимо записать на одном уровне с началом программы.

s = '8' * 68
while '222' in s ...
...
print(s)

ТЕКСТ ПРОГРАММЫ

Решение задания Исполнитель Редактор ЕГЭ через Python в среде разработки IDLE
Решение задания Исполнитель Редактор ЕГЭ через Python в среде разработки IDLE

Для копирования:

s = '8' * 68
while '222' in s or '888' in s:
if '222' in s:
s = s.replace('222', '8', 1)
else:
s = s.replace('888', '2', 1)
print(s) # >>> 28

-26