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

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

  • Задание 1 — округление вверх и вниз.
  • Задание 2 — сумма чисел от 1 до n.
  • Задание 3 — факториал двумя способами.
  • Задание 4 — симулятор кассы.
  • Задание 5 — учёт доходов и расходов.
  • Задание 6 — числа Фибоначчи.
  • Задание 7 — число Армстронга.
  • Задание 8 — угадай число за 5 попыток.
  • Задание 9 — проверка простого числа.
  • Задание 10 — упорядоченность цифр.
  • Дополнительно — сумма цифр и переворот числа.

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

В этом разделе вы пошагово выполните практические задания: от создания файла до рабочей программы в VS Code.

Цель тренировки: научиться самостоятельно переводить условие задачи в программу, использовать циклы while и проверять результат в терминале.

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

  1. Создайте папку урока внутри python-fundamentals-practice/lesson-13/.
  2. Активируйте виртуальное окружение.
  3. Создайте файл для каждого задания, например task_01_rounding.py.

Задание 1. Округление вверх и вниз

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

Что должно получиться:

Введите число: 4.3
Округление вверх: 5
Округление вниз: 4

Подсказка: используйте math.ceil и math.floor.

Задание 2. Сумма чисел

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

Что должно получиться:

Введите число: 5
Сумма чисел от 1 до 5 = 15

Подсказка: используйте переменную total и цикл while от 1 до n.

Задание 3. Счётчик факториала

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

Что должно получиться:

Введите число: 5
Факториал числа 5 первым способом: 120
Факториал числа 5 вторым способом: 120
Результаты равны? True

Подсказка: первый способ — цикл while, второй — math.factorial.

Задание 4. Симулятор кассы

Условие: напишите программу, которая принимает цены товаров до ввода 0. Программа должна рассчитать общую сумму, округлённую до целого, определить сумму к оплате купюрами по 100 евро и вывести сдачу.

Что должно получиться:

Введите цену товара: 45.50
Введите цену товара: 29.99
Введите цену товара: 22.49
Введите цену товара: 0
Сумма покупки: 98 евро
Покупатель передал: 100 евро
Сдача: 2 евро

Подсказка: используйте while True с break и функции round и math.ceil.

Задание 5. Учёт доходов и расходов

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

Что должно получиться:

Введите доход, расход или '0' для получения итога: 15000
Введите доход, расход или '0' для получения итога: -5000
Введите доход, расход или '0' для получения итога: -3000
Введите доход, расход или '0' для получения итога: 0
Доходы: 15000
Расходы: 8000
Итоговый баланс: 7000

Подсказка: положительные значения накапливайте в income, отрицательные — в expenses.

Задание 6. Последовательности Фибоначчи

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

Что должно получиться:

Введите количество чисел: 7
0 1 1 2 3 5 8

Подсказка: используйте параллельное присваивание a, b = b, a + b.

Задание 7. Число Армстронга

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

Что должно получиться:

Введите число: 153
Число 153 является числом Армстронга.

Введите число: 123
Число 123 не является числом Армстронга.

Подсказка: сначала посчитайте количество цифр, затем — сумму их степеней.

Задание 8. Угадай за 5 попыток

Условие: напишите программу, которая генерирует случайное число от 1 до 10 и просит пользователя угадать его за 5 попыток. Если пользователь не угадывает, программа выводит загаданное число.

Что должно получиться:

Попробуйте угадать число от 1 до 10: 10
Неверно! У вас осталось 4 попытки.
Попробуйте угадать число от 1 до 10: 3
Неверно! У вас осталось 3 попытки.
Попробуйте угадать число от 1 до 10: 7
Поздравляем! Вы угадали число.

Подсказка: используйте random.randint(1, 10) и счётчик попыток.

Задание 9. Определение простого числа

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

Что должно получиться:

Введите число: 29
Число 29 является простым.

Введите число: 15
Число 15 не является простым.

Подсказка: достаточно проверять делители от 2 до квадратного корня из числа.

Задание 10. Упорядоченность цифр

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

Что должно получиться:

Введите число: 1347
Цифры упорядочены по возрастанию.

Введите число: 1523
Цифры не упорядочены по возрастанию.

Подсказка: извлекайте цифры справа налево и сравнивайте каждую с предыдущей.

Дополнительное задание 11. Сумма цифр

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

Что должно получиться:

Введите число: 12345
Сумма цифр: 15

Подсказка: используйте % 10 и // 10 в цикле while.

Дополнительное задание 12. Перевёрнутое число

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

Что должно получиться:

Введите число: 1234
Перевёрнутое число: 4321

Подсказка: на каждой итерации добавляйте последнюю цифру к результату, умножая его предварительно на 10.

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

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

Вопрос 1

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

Вопрос 2

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

Вопрос 3

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

Вопрос 4

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

Вопрос 5

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

Вопрос 6

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