Не совсем по твоей задаче но подходит и интереснее ?
import time
import threading
def get_user_input():
while True:
try:
number = int(input("\nВведите положительное целое число: "))
if number <= 0:
print("\033[91mОшибка: Число должно быть положительным. Попробуйте еще раз.\033[0m")
continue
return number
except ValueError:
print("\033[91mОшибка: Пожалуйста, введите целое число.\033[0m")
def countdown(number, custom_message):
if number < 1:
print("\033[91mОшибка: число должно быть больше 0 для обратного отсчета.\033[0m")
return
print("\nНачинаем обратный отсчет:")
for i in range(number, 0, -1):
if i % 3 == 0:
print("\033[92mБум!\033[0m")
else:
print(f"\033[94m{i}\033[0m")
time.sleep(1)
print("\033[91mВремя вышло!\033[0m")
def main():
print("\033[1;34mДобро пожаловать в программу обратного отсчета!\033[0m")
while True:
number = get_user_input()
custom_message = input("Введите ваше собственное сообщение для обратного отсчета (или нажмите Enter для стандартного): ")
countdown_thread = threading.Thread(target=countdown, args=(number, custom_message))
countdown_thread.start()
while countdown_thread.is_alive():
user_input = input("Нажмите 'p' для паузы или 'r' для продолжения (или 's' для пропуска): ").strip().lower()
if user_input == 'p':
print("\033[93mОбратный отсчет приостановлен.\033[0m")
countdown_thread.join()
break
elif user_input == 'r':
print("\033[92mОбратный отсчет продолжается...\033[0m")
break
elif user_input == 's':
print("\033[93mОбратный отсчет пропущен.\033[0m")
countdown_thread.join()
break
again = input("\nХотите сделать еще один обратный отсчет? (да/нет): ").strip().lower()
if again != 'да':
break
print("\n\033[93mОтсчет окончен! Спасибо за использование программы.\033[0m")
if __name__ == "__main__":
main()
напишите программу, которая запрашивает у пользователя число и выводит обратный отсчёт от этого числа до 1.Если число делится на 3,программа должна вывести "бум" вместо числа