Я могу предоставить вам несколько методов создания таймера терминала вместе с примерами кода. Вот несколько подходов:
Метод 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
Это всего лишь несколько способов создания таймера терминала. Не стесняйтесь выбрать тот, который лучше всего соответствует вашим потребностям, или измените его в соответствии со своими требованиями.