Любопытно, что впервые обратный отсчёт перед запуском ракеты был использован в немом научно-фантастическом фильме «Женщина на Луне». Драматический приём оказался настолько удачным, что прижился в реальной практике космонавтики.
Формат ввода
Вводится одно целое число n — количество секунд, оставшееся до запуска.
Формат вывода
Для каждой секунды от n-й до нулевой последовательно выведите: «Осталось секунд: <количество оставшихся секунд>». После этого выведите: «Пуск».
Если n<0, то это значит, что с пуском мы опаздываем: в этом случае выводите «Пуск» немедленно, не тратя времени на обратный отсчёт.
Создайте таймер обратного отсчета в Python

В этом руководстве рассказывается, как создать таймер обратного отсчета в Python.
Код принимает ввод того, как долго должен быть обратный отсчет, и начинает обратный отсчет сразу после ввода ввода.
Использование модуля time и функции sleep() для создания таймера обратного отсчета в Python
Модуль time — это общий модуль Python, содержащий вспомогательные функции и переменные, связанные со временем. Основная функция, используемая в этом руководстве, — это функция sleep() , которая представляет собой асинхронную функцию, которая приостанавливает выполнение одного потока на n секунд.
Если ваша программа однопоточная, как в этом руководстве, то функция sleep() остановит выполнение всей программы до тех пор, пока не будет достигнуто заданное время. Благодаря этому, наряду с подтвержденным пользовательским вводом, мы можем создать простой таймер обратного отсчета в Python.
Первое, что нужно сделать, это импортировать модуль time для использования функции sleep() .
Затем объявите функцию, которая будет работать как таймер обратного отсчета. Назовем эту функцию countdown() . Функция принимает единственный параметр: количество секунд ( num_of_secs ), до которого будет отсчитывать таймер.
Переменная num_of_secs будет непрерывно уменьшаться в цикле, пока не достигнет 0 (что переводится в False и завершает цикл без каких-либо дополнительных условий).
Внутри цикла отформатируйте входную переменную num_of_secs в формат MM:SS и распечатайте ее каждый раз, когда она уменьшается. Для этого используйте встроенную функцию Python divmod() , которая принимает два числа и возвращает произведение и остаток от двух чисел соответственно. Затем отформатируйте результат кортежа divmod() в формат MM:SS с помощью встроенной строковой функции format() .
<:02d>форматирует аргумент в 2-значное целое число (из-за символа 02d ). Если целое число меньше двух цифр, к нему добавляются ведущие 0 .
Затем при каждой итерации цикла вызывайте time.sleep(1) , что означает, что каждая итерация откладывается на 1 секунду и будет продолжаться по истечении.
Перед вызовом функции sleep() распечатайте отформатированную строку, напоминающую формат MM:SS текущего значения входной переменной num_of_secs .
Кроме того, добавьте еще один аргумент в функцию print() со свойством end и значением /r , который представляет собой новую строку для имитации поведения реального таймера. Этот аргумент перезаписывает предыдущий вывод print() каждый раз при выполнении цикла, перезаписывая все до того, как возврат каретки обозначен символом /r .
После этого уменьшите входную переменную min_sec_format на 1 после выполнения всех предыдущих строк.
Наконец, распечатайте заключительный оператор вне цикла, который означает, что таймер завершил выполнение. Он завершает метод countdown() и будет работать как таймер обратного отсчета.
Следующее, что нужно сделать, — предоставить пользователю возможность ввести количество секунд для запуска обратного отсчета. Для этого мы можем использовать встроенную функцию input() для приема пользовательского ввода.
Перехватите ввод в переменную и используйте его в качестве аргумента для функции обратного отсчета. Обязательно приведите входную переменную к int для проверки.
Весь код должен выглядеть так:
Окончательный результат будет отображать Countdown Finished , но будет имитировать работу таймера и очищать каждую строку print() , пока не достигнет 00:00 .
Итак, если вы введете 5 секунд, трассировка стека будет выглядеть так:
Вот и все. Теперь вы успешно создали простой таймер обратного отсчета в Python, используя только встроенные функции и функцию sleep() из модуля time .
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
Любопытно, что впервые обратный отсчёт перед запуском ракеты был использован в немом научно-фантастическом фильме «Женщина на Луне». Драматический приём оказался настолько удачным, что прижился в реальной практике космонавтики. Напишите программу, которая ведёт обратный отсчёт.
Формат ввода
Вводится одно целое число n — количество секунд, оставшееся до запуска.
Формат вывода
Для каждой секунды от n-й до нулевой последовательно выведите: «Осталось секунд: <количество оставшихся секунд>». После этого выведите: «Пуск».
Если n<0, то это значит, что с пуском мы опаздываем: в этом случае выводите «Пуск» немедленно, не тратя времени на обратный отсчёт.
Как написать программу обратного отсчета с помощью рекурсии?
Напишите программу, которая будет делать обратный отсчет от числа, которое вы ввели, к нулю с помощью цикла, а затем с помощью рекурсии.
С помощью цикла:
С рекурсией не получается. (
Чтобы написать рекурсивную функцию, достаточно реализовать самый простой случай и вызвать саму функцию для реализации всего остального:
Ещё одна итеративная версия:
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.13.43309
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.