Как создать таймер терминала: методы и примеры кода

Я могу предоставить вам несколько методов создания таймера терминала вместе с примерами кода. Вот несколько подходов:

Метод 1: использование модуля time

import time
def terminal_timer(seconds):
    start_time = time.time()
    end_time = start_time + seconds

    while time.time() < end_time:
        remaining_time = int(end_time - time.time())
        minutes, seconds = divmod(remaining_time, 60)
        time_format = '{:02d}:{:02d}'.format(minutes, seconds)
        print('Time remaining: {}'.format(time_format))
        time.sleep(1)

    print('Time up!')
# Usage
terminal_timer(60)  # Timer for 60 seconds

Метод 2. Использование модуля datetime

import datetime
def terminal_timer(seconds):
    start_time = datetime.datetime.now()
    end_time = start_time + datetime.timedelta(seconds=seconds)

    while datetime.datetime.now() < end_time:
        remaining_time = end_time - datetime.datetime.now()
        time_format = str(remaining_time).split('.')[0]
        print('Time remaining: {}'.format(time_format))
        time.sleep(1)

    print('Time up!')
# Usage
terminal_timer(60)  # Timer for 60 seconds

Метод 3. Использование модуля curses(для более продвинутых таймеров)

import time
import curses
def terminal_timer(seconds):
    stdscr = curses.initscr()
    curses.noecho()
    curses.cbreak()
    stdscr.keypad(True)

    start_time = time.time()
    end_time = start_time + seconds

    while time.time() < end_time:
        stdscr.clear()
        remaining_time = int(end_time - time.time())
        minutes, seconds = divmod(remaining_time, 60)
        time_format = '{:02d}:{:02d}'.format(minutes, seconds)
        stdscr.addstr(0, 0, 'Time remaining: {}'.format(time_format))
        stdscr.refresh()
        time.sleep(1)

    stdscr.addstr(1, 0, 'Time up!')
    stdscr.refresh()
    time.sleep(2)

    curses.nocbreak()
    stdscr.keypad(False)
    curses.echo()
    curses.endwin()
# Usage
terminal_timer(60)  # Timer for 60 seconds

Это всего лишь несколько способов создания таймера терминала. Не стесняйтесь выбрать тот, который лучше всего соответствует вашим потребностям, или измените его в соответствии со своими требованиями.