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

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

  • Разминка — 6 вопросов по методам строк.
  • Практикум 5 — 11 задач на строки, списки и циклы.
  • Дополнительно — 2 задачи из основного блока занятия.

🏃 Разминка: методы строк

Вопрос 1. Какой результат?

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

Ответ: b — цифра 3 делает результат False.

Вопрос 2. Какой результат?

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

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

Вопрос 3. Какой результат?

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

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

Вопрос 4. Какой результат?

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

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

Вопрос 5. Какой результат?

text = "Hello, worlD!"
print(text.swapcase())
  • a. "HELLO, WORLD!"
  • b. "HELLO, WORLd!"
  • c. "hELLO, WORLd!"
  • d. "hELLO, WORLD!"

Ответ: c — регистр каждого символа меняется на противоположный.

Вопрос 6. Какой результат?

text = "Python, Java, C++"
languages = text.split(",")
print(languages)
  • a. ['Python', 'Java', 'C++']
  • b. ['Python', ' Java', ' C++']
  • c. ['Python Java C++']
  • d. список символов

Ответ: b — разделитель "," не удаляет пробелы после себя.

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

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

Цель тренировки: закрепить работу со строками, списками, циклами и методами строк.

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

  1. Создайте папку урока внутри python-fundamentals-practice/lesson-21/.
  2. Активируйте виртуальное окружение.
  3. Создайте файлы для задач практикума: task_01_sum.py, task_02_reverse.py и т.д.

Задание 1. Сложение чисел

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

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

Введите список чисел через пробел: 1 2 3 4 5
Сумма чисел: 15

Подсказка: используйте split(), int() и sum().

Задание 2. Обратный список

Условие: напишите программу, которая принимает строку с числами через пробел и выводит список чисел в обратном порядке. В списке должны быть числа, а не строки.

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

Введите список чисел через пробел: 1 2 3 4 5
Обратный список: [5, 4, 3, 2, 1]

Подсказка: преобразуйте каждый элемент в int, затем используйте срез [::-1].

Задание 3. Сумма чётных и нечётных чисел

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

numbers = [-1, 8, 2, 0, -3, -9, -1, 10, 7, -4]

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

Изначальный список: [-1, 8, 2, 0, -3, -9, -1, 10, 7, -4]
Сумма чётных: 16
Сумма нечётных: -7

Задание 4. Максимальное число

Условие: напишите программу, которая выводит наибольшее число в списке, не используя встроенную функцию max(), а также его индекс в списке.

numbers = [3, 12, 8, 22, 9, 25, 6, 23, 8, 7]

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

Список чисел: [3, 12, 8, 22, 9, 25, 6, 23, 8, 7]
Наибольшее число: 25
Индекс числа: 5

Задание 5. Перестановка соседних элементов

Условие: напишите программу, которая меняет местами соседние элементы списка.

numbers = [1, 2, 3, 4, 5]

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

Изначальный список: [1, 2, 3, 4, 5]
Список после перестановки: [2, 1, 4, 3, 5]

Задание 6. Числа и слова

Условие: напишите программу, которая обрабатывает строку, содержащую слова и целые числа, разделённые пробелами. Числа преобразуются в int, остальные элементы остаются строками и начинаются с заглавной буквы.

text = "apple 42 banana 3 100 orange"

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

Изначальная строка: apple 42 banana 3 100 orange
Результат: ['Apple', 42, 'Banana', 3, 100, 'Orange']

Задание 7. Кодирование строки

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

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

Введите строку: aaaabbc
Закодированная строка: a4b2c1

Задание 8. Проверка формата email

Условие: напишите программу, которая проверяет, начинается ли строка с буквы, содержит ли символ @ и заканчивается ли на .com или .de.

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

Введите email: user@example.com
Корректный формат? True

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

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

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

Введите строку: My number is 123-456-789
Результат: My number is ***-***-***

Задание 10. Развернуть слова

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

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

Введите строку: Python is fun
Результат: nohtyP si nuf

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

Условие: напишите программу, которая подсчитывает количество букв, цифр и пробелов в строке. Также выведите количество остальных символов.

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

Введите строку: Python 3.12 is awesome!
Буквы: 15
Цифры: 3
Пробелы: 3
Остальные символы: 2

Задание 12. По одному пробелу

Условие: напишите программу, которая удаляет в строке лишние пробелы, оставляя только по одному пробелу между словами.

text = "  Hello, World!   How are you?  "

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

Строка: '  Hello, World!   How are you?  '
Результат: 'Hello, World! How are you?'

Задание 13. Все позиции подстроки

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

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

Строка: Banana bAnana baNAna
Подстрока: ban
Позиция: 0
Позиция: 7
Позиция: 14

Подсказка: используйте цикл с find() и третьим аргументом — началом поиска.

Задание 14. Корректные имена

Условие: напишите программу, которая обрабатывает список строк (имён) и выводит только корректные имена. Корректное имя начинается с заглавной буквы и состоит только из букв.

names = ["Alice", "bob", "Charlie", "dave", "Eva", "Frank123"]

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

Имена с заглавной буквы и без цифр:
Alice
Charlie
Eva

Задание 15. Квадрат чисел

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

text = "I have 2 apples and 4 bananas"

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

I have 4 apples and 16 bananas

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

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

Вопрос 1

Что важнее всего в практическом задании?

Вопрос 2

Как безопаснее двигаться в практикуме?

Вопрос 3

Что делать, если решение не совпадает с ожидаемым результатом?

Вопрос 4

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

Вопрос 5

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

Вопрос 6

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