📝 Практические задания

⚡ Задания в двух словах

  • Блок 1 — 2 вопроса про предикатные методы.
  • Блок 2 — 2 вопроса про поиск и подсчёт подстрок.
  • Практические задания: звёздочки вместо цифр, подсчёт повторяющихся символов, увеличение чисел в строке.

🏃 Блок 1: предикатные методы

Вопрос 1.1. Какой результат выведет следующий код?

text = "Python3"
print(text.isalpha())
  • a. True
  • b. False
  • c. Ошибка
  • d. None

Ответ: b — строка содержит цифру 3, поэтому isalpha() возвращает False.

Вопрос 1.2. Какой результат выведет следующий код?

text = "Hello World"
print(text.istitle())
  • a. True
  • b. False
  • c. Ошибка
  • d. None

Ответ: a — оба слова начинаются с заглавной буквы.

🏋️ Блок 2: поиск и подсчёт

Вопрос 2.1. Какой результат выведет следующий код?

text = "Python is awesome. Python is dynamic."
print(text.find("is"))
  • a. 23
  • b. 7
  • c. 8
  • d. -1

Ответ: b — первое вхождение подстроки "is" начинается с индекса 7.

Вопрос 2.2. Какой результат выведет следующий код?

text = "33333"
print(text.count("33"))
  • a. 1
  • b. 2
  • c. 3
  • d. 5

Ответ: b — метод ищет непересекающиеся вхождения: 33|33333 и 33.

🏋️ Раздел тренировки

В этом разделе вы пошагово выполните практические задания из занятия.

Цель тренировки: закрепить методы строк: replace(), isdigit(), split(), join(), count() и цикл for.

📂 Подготовка проекта

  1. Создайте папку урока внутри python-fundamentals-practice/lesson-20/.
  2. Активируйте виртуальное окружение.
  3. Создайте файлы task_01_stars.py, task_02_char_count.py и task_03_multiply_numbers.py.

Задание 1. Звёздочки вместо чисел

Условие: напишите программу, которая заменяет все цифры в строке на звёздочки *.

text = "My number is 123-456-789"

Пример вывода:

Строка: My number is 123-456-789
Результат: My number is ***-***-***

Подсказка: переберите символы строки циклом. Если символ — цифра, добавьте *, иначе — сам символ.

Задание 2. Количество символов

Условие: напишите программу, которая подсчитывает количество вхождений всех символов в строке. Нужно вывести только символы, которые встречаются более 1 раза (игнорируя регистр), с указанием их количества. Выводите повторяющиеся символы только один раз.

text = "Programming in python"

Пример вывода:

Строка: Programming in python
Символ 'p' встречается 2 раз(а)
Символ 'r' встречается 2 раз(а)
Символ 'o' встречается 2 раз(а)
Символ 'g' встречается 2 раз(а)
Символ 'm' встречается 2 раз(а)
Символ 'i' встречается 2 раз(а)
Символ 'n' встречается 3 раз(а)
Символ ' ' встречается 2 раз(а)

Подсказка: приведите строку к нижнему регистру, накапливайте уже выведенные символы и используйте count().

Задание 3. Увеличение чисел

Условие: напишите программу, которая заменяет все числа в строке на их эквивалент, умноженный на 10.

text = "I have 5 apples and 10 oranges, price is 0.5 each. Card number is ....3672."

Пример вывода:

I have 50.0 apples and 100.0 oranges, price is 5.0 each. Card number is ....3672.

Подсказка: разбейте строку на слова, проверьте, является ли слово числом, умножьте его на 10 и соберите строку обратно через join(). Обратите внимание: "....3672" не является числом, поэтому остаётся без изменений.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Почему f-string часто удобнее конкатенации?

Вопрос 2

Какой метод убирает пробелы по краям строки?

Вопрос 3

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 4

Зачем использовать f-strings в современном Python?

Вопрос 5

Когда полезен ранний возврат из функции?

Вопрос 6

Что делает аннотация типа в Python?

Вопрос 7

Как лучше обрабатывать ожидаемую ошибку преобразования?