Введение
В ходе статьи напишем будильник с графическим интерфейсом на языке программирования Python.
Установка модуля playsound
Для написания будильника нам понадобится модуль под названием playsound. Для его установки нужно перейти в терминал, или же командную строку, прописать pip install playsound, нажать Enter и ждать установки.
Пишем будильник на Python
Импортируем класс datetime из модуля datetime, и playsound из модуля playsound:
from datetime import datetime
from playsound import playsound
Создадим функцию validate_time(), в качестве аргумента укажем alarm_time. В аргумент alarm_time будет передаваться время точное время срабатывания будильника:
Внутри функции зададим условие, что если длина alarm_time не равно восьми, то возвращается надпись «Неверный формат, попробуйте снова». Если же условие не сработало, то срабатывает else, в котором производится проверка правильности ввода времени, и если всё в норме, возвращается текст «Верно»:
from datetime import datetime
from playsound import playsound
def validate_time(alarm_time):
if len(alarm_time) != 8:
return "Неверный формат, попробуйте снова"
else:
if int(alarm_time[0:2]) > 23:
return "Неверный формат часов, попробуйте снова"
elif int(alarm_time[3:5]) > 59:
return "Неверный формат минут, попробуйте снова"
elif int(alarm_time[6:8]) > 59:
return "Неверный формат секунд, попробуйте снова"
else:
return "Верно"
Создадим бесконечный цикл, в котором будет производиться ввод времени воспроизведения будильника, после чего производиться проверка на правильность ввода при помощи созданной нами ранее функции validate_time():
from datetime import datetime
from playsound import playsound
def validate_time(alarm_time):
if len(alarm_time) != 8:
return "Неверный формат, попробуйте снова"
else:
if int(alarm_time[0:2]) > 23:
return "Неверный формат часов, попробуйте снова"
elif int(alarm_time[3:5]) > 59:
return "Неверный формат минут, попробуйте снова"
elif int(alarm_time[6:8]) > 59:
return "Неверный формат секунд, попробуйте снова"
else:
return "Верно"
while True:
# Запрашиваем время установки будильника
alarm_time = input("Введите время будильника в следующем формате 'HH:MM:SS' \n Время будильника: ")
validate = validate_time(alarm_time) # присваиваем результаты функции
if validate != "Верно":
print(validate)
else:
print(f"Будильник установлен на {alarm_time}...")
break
Отдельно сохраним часы, минуты и секунды в разные переменные:
from datetime import datetime
from playsound import playsound
def validate_time(alarm_time):
if len(alarm_time) != 8:
return "Неверный формат, попробуйте снова"
else:
if int(alarm_time[0:2]) > 23:
return "Неверный формат часов, попробуйте снова"
elif int(alarm_time[3:5]) > 59:
return "Неверный формат минут, попробуйте снова"
elif int(alarm_time[6:8]) > 59:
return "Неверный формат секунд, попробуйте снова"
else:
return "Верно"
while True:
# Запрашиваем время установки будильника
alarm_time = input("Введите время будильника в следующем формате 'HH:MM:SS' \n Время будильника: ")
validate = validate_time(alarm_time) # присваиваем результаты функции
if validate != "Верно":
print(validate)
else:
print(f"Будильник установлен на {alarm_time}...")
break
alarm_hour = int(alarm_time[0:2])
alarm_min = int(alarm_time[3:5])
alarm_sec = int(alarm_time[6:8])
Создадим бесконечный цикл, в котором для начала получим текущую дату и время:
from datetime import datetime
from playsound import playsound
def validate_time(alarm_time):
if len(alarm_time) != 8:
return "Неверный формат, попробуйте снова"
else:
if int(alarm_time[0:2]) > 23:
return "Неверный формат часов, попробуйте снова"
elif int(alarm_time[3:5]) > 59:
return "Неверный формат минут, попробуйте снова"
elif int(alarm_time[6:8]) > 59:
return "Неверный формат секунд, попробуйте снова"
else:
return "Верно"
while True:
# Запрашиваем время установки будильника
alarm_time = input("Введите время будильника в следующем формате 'HH:MM:SS' \n Время будильника: ")
validate = validate_time(alarm_time) # присваиваем результаты функции
if validate != "Верно":
print(validate)
else:
print(f"Будильник установлен на {alarm_time}...")
break
alarm_hour = int(alarm_time[0:2])
alarm_min = int(alarm_time[3:5])
alarm_sec = int(alarm_time[6:8])
while True:
now = datetime.now()
current_hour = now.hour # Получение текущего часа
current_min = now.minute # Получение текущей минуты
current_sec = now.second # Получение текущей секунды
Добавим условие, что если введённый пользователем час совпадает с нынешним, то переходим во вложенное условие, проверяем минуты, и по такому же принципу секунды. Если же сработали все условия, то включаем мелодию указанную в пути:
from datetime import datetime
from playsound import playsound
def validate_time(alarm_time):
if len(alarm_time) != 8:
return "Неверный формат, попробуйте снова"
else:
if int(alarm_time[0:2]) > 23:
return "Неверный формат часов, попробуйте снова"
elif int(alarm_time[3:5]) > 59:
return "Неверный формат минут, попробуйте снова"
elif int(alarm_time[6:8]) > 59:
return "Неверный формат секунд, попробуйте снова"
else:
return "Верно"
while True:
# Запрашиваем время установки будильника
alarm_time = input("Введите время будильника в следующем формате 'HH:MM:SS' \n Время будильника: ")
validate = validate_time(alarm_time) # присваиваем результаты функции
if validate != "Верно":
print(validate)
else:
print(f"Будильник установлен на {alarm_time}...")
break
alarm_hour = int(alarm_time[0:2])
alarm_min = int(alarm_time[3:5])
alarm_sec = int(alarm_time[6:8])
while True:
now = datetime.now()
current_hour = now.hour # Получение текущего часа
current_min = now.minute # Получение текущей минуты
current_sec = now.second # Получение текущей секунды
if alarm_hour == current_hour:
if alarm_min == current_min:
if alarm_sec == current_sec:
print("Подъем!")
playsound('C:/music.mp3') # Путь до аудиозаписи
break
Заключение
В ходе статьи мы с Вами написали будильник с графическим интерфейсом на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂