summaryrefslogtreecommitdiff
path: root/PYTHON/Программа-напоминалка на Python.md
diff options
context:
space:
mode:
Diffstat (limited to 'PYTHON/Программа-напоминалка на Python.md')
-rw-r--r--PYTHON/Программа-напоминалка на Python.md156
1 files changed, 156 insertions, 0 deletions
diff --git a/PYTHON/Программа-напоминалка на Python.md b/PYTHON/Программа-напоминалка на Python.md
new file mode 100644
index 0000000..d0c28e1
--- /dev/null
+++ b/PYTHON/Программа-напоминалка на Python.md
@@ -0,0 +1,156 @@
+### Установка и импорт библиотек
+
+Перед написанием кода нам понадобится установить библиотеку **schedule** для планирования напоминаний и **plyer** для отображения системных уведомлений Windows. Сделать это можно через **pip**. Для этого нужно перейти в терминал/командную строку, прописать **pip install schedule plyer**, нажать Enter и ждать установки.
+
+```bash
+pip install schedule plyer
+```
+
+После инсталляции импортируем все необходимые библиотеки:
+
+```python
+import schedule
+import time
+from plyer import notification
+```
+
+- **schedule** — для планирования напоминаний;
+- **time** — для работы с задержками;
+- **plyer** — для отображения системных уведомлений.
+
+### Написание кода программы-напоминалки на Python
+
+Первым делом создадим функцию **show_notification()**, которая будет вызывать системное уведомление.
+
+У функции будет присутствовать один параметр, а именно:
+
+- message — текст оповещения, переданный пользователем.
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+```
+
+Внутри функции через объект **notification** обратимся к методу **notify()**, чтобы создать уведомление с заголовком «Напоминание», переданным пользователем текстом и длительностью равной 10 секунд:
+
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+ notification.notify(
+ title="Напоминание",
+ message=message,
+ timeout=10
+ )
+```
+
+Теперь создадим функцию **add_reminder()**, которая будет создавать напоминания.
+
+У функции будет присутствовать два параметра, а именно:
+
+- text — текст напоминания;
+- reminder_time — время, в которое должно сработать напоминание.
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+ notification.notify(
+ title="Напоминание",
+ message=message,
+ timeout=10
+ )
+
+
+def add_reminder(text, reminder_time):
+```
+
+Внутри функции будет добавляться задача в планировщик, чтобы каждый день в указанное время **reminder_time** вызывалась функция **show_notification()** с переданным текстом:
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+ notification.notify(
+ title="Напоминание",
+ message=message,
+ timeout=10
+ )
+
+
+def add_reminder(text, reminder_time):
+ schedule.every().day.at(reminder_time).do(show_notification, message=text)
+ print(f"Напоминание добавлено на {reminder_time}: {text}")
+```
+
+Теперь добавим точку входа, внутри которой будет находиться бесконечный цикл:
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+ notification.notify(
+ title="Напоминание",
+ message=message,
+ timeout=10
+ )
+
+
+def add_reminder(text, reminder_time):
+ schedule.every().day.at(reminder_time).do(show_notification, message=text)
+ print(f"Напоминание добавлено на {reminder_time}: {text}")
+
+
+if __name__ == "__main__":
+ while True:
+```
+
+Внутри бесконечного цикла пользователю будет предложено ввести текст напоминания и время, в которое должно произойти напоминание. Далее будет идти вложенный бесконечный цикл, который ожидает выполнения напоминания.
+
+```python
+import schedule
+import time
+from plyer import notification
+
+
+def show_notification(message):
+ notification.notify(
+ title="Напоминание",
+ message=message,
+ timeout=10
+ )
+
+
+def add_reminder(text, reminder_time):
+ schedule.every().day.at(reminder_time).do(show_notification, message=text)
+ print(f"Напоминание добавлено на {reminder_time}: {text}")
+
+
+if __name__ == "__main__":
+ while True:
+ text = input("Введите текст напоминания: ")
+ reminder_time = input("Введите время (формат ЧЧ:ММ): ")
+ add_reminder(text, reminder_time)
+ print("Ожидание напоминания...")
+
+ while True:
+ schedule.run_pending()
+ time.sleep(1)
+``` \ No newline at end of file