Найти в Дзене
Python Machine

Будильник на Python

ВАЖНО! Редактор в Яндекс.Дзен игнорирует все отступы, поэтому прошу смотреть конечный код по ссылке в github в конце статьи! Привет. Давай попробуем создать обычный будильник, используя только лишь python. Создаем папку проекта (я буду делать на windows). Открываем IDE (в моём случае PyCharm). 1. Для нашего проекта следует установить необходимые модули, поэтому вбиваем в терминале: 2. Следующий шаг - скачать рингтон. Качаем рингтон с этого сайта, можете также поставить и свою любимую музыку, важно только, чтобы она находилась в папке с вашим файлом, где вы пишите код. Я решил выбрать самый популярный) 3. Следующим шагом в нашем main.py устанавливаем наши библиотеки. from datetime import datetime
from playsound import playsound 4. Прежде всего нам следует задуматься о валидации данных, которые будет вводить пользователь и я предлагаю сделать следующим образом: def validate_time(alarm_time): """создаем функцию, куда будем передавать наше значение времени"""
if len(alarm_time) !=

ВАЖНО! Редактор в Яндекс.Дзен игнорирует все отступы, поэтому прошу смотреть конечный код по ссылке в github в конце статьи!

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

Создаем папку проекта (я буду делать на windows). Открываем IDE (в моём случае PyCharm).

1. Для нашего проекта следует установить необходимые модули, поэтому вбиваем в терминале:

Он нам необходим, чтобы получить текущее время
Он нам необходим, чтобы получить текущее время
-3

2. Следующий шаг - скачать рингтон.

Качаем рингтон с этого сайта, можете также поставить и свою любимую музыку, важно только, чтобы она находилась в папке с вашим файлом, где вы пишите код.

Я решил выбрать самый популярный)

-4

3. Следующим шагом в нашем main.py устанавливаем наши библиотеки.

from datetime import datetime
from playsound import playsound

4. Прежде всего нам следует задуматься о валидации данных, которые будет вводить пользователь и я предлагаю сделать следующим образом:

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 "ok"

5. Затем мы создадим цикл, куда отправим нашу функцию, где и "запустим" наш будильник:

while True:
alarm_time = input("Введите время будильника в следующем формате 'HH:MM:SS' \n Время будильника: ") '''Запрашиваем время установки будильника'''

validate = validate_time(alarm_time)
'''присваиваем результаты функции'''
if validate != "ok":
print(validate)
else:
print(f"Будильник установлен на время {alarm_time}...")
break

6. Далее мы обрезаем полученную строку, чтобы отдельно получить часы, минуты, секунды. Также приводим их к типу int, чтобы дальше мы могли их сравнивать с текущем временем.

alarm_hour = int(alarm_time[0:2])
alarm_min = int(alarm_time[3:5])
alarm_sec = int(alarm_time[6:8])

7. Вот и самый важный этап. Мы создаем цикл, который будет доставать текущее время, отбирать оттуда по отдельности часы, минуты, секунды, а затем сравнивать их с нашими введенными данными и если они все совпадают, то выводится надпись "Подъем!" и срабатывает наш звук!

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('D:/Python_Machine/projects/alarm/1.mp3') ''' Здесь вводите свой адрес,где у вас имеется ваша запись''
break

Полный код доступен по этой ссылке:

https://github.com/cogesum/alarm1