Как сделать на Python простую программу для напоминания

Эта статья предназначена в первую очередь для тех, кто пока еще мало что знает о программировании, но уже хочет попробовать что-то сделать с помощью любимца мира программирования — языка Python.

Алгоритм

Программа будет очень простой: 

  • Спросить пользователя, о чем он хочет сделать напоминание. 
  • Спросить, когда (через какое время, в минутах) 
  • Рассчитать время ожидания (минуты умножить на секунды) 
  • Ожидать указанное время 
  • Напомнить о том, что пользователь запросил на шаге 1

Хотя алгоритм прост, реализация каждого шага может сделать это приложение очень полезным. Например, на шагах 1 и 2 можно общаться с пользователем через разные каналы: клавиатуру, голосовые приложения или приложения для обмена сообщениями. Также можно изменить сам алгоритм, например, сделать его защищенным от выключения: если ваш компьютер выключается во время шага 4, он должен знать, о чем он должен напомнить. Но пока давайте разберемся с основными настройками.

Реализация

Шаг 0: Настройка параметров

Теперь нам нужно спросить пользователя и получить ответ. В идеале нам нужен будет вот такой код:

                                                                      
reminder = user.ask("What shall I remind you about?")
 

И где-то в программе нужно определить значения user (пользователь) и ask (спросить). Это может быть сообщение, отправленное через Telegram, или голосовая подсказка, или, может быть, текст, который выводит у себя на экране робот, подошедший со счастливым лицом к пользователю. Реализация может быть различной, и ее лучше определить в отдельном месте нашей программы. 

Но так как сейчас нам нужна простая реализация, мы прибегнем к некоторым встроенным командам:

      
print("What shall I remind you about?")
  

print отправляет текстовое сообщение в вывод Python по умолчанию (в нашем случае это командная строка).

 
text = str(input())
 

Это означает: взять все, что написал пользователь, интерпретировать это как текст и поместить в память под именем text. Функция input() читает все, что вводит пользователь. Функция str() преобразует в текст все, что было введено. Знак равенства означает «положить одну вещь в память под таким именем».

Шаг 2: Запрос времени

Далее нам нужно время в минутах. Вот оно:

 
print("In how many minutes?")
local_time = float(input())
 

Вторая строка означает: взять то, что набрал пользователь, интерпретировать это как число и поместить в память под именем local_time.

Шаг 3. Подсчет времени ожидания

У нас есть количество минут, в течение которых наше приложение будет ждать, прежде чем напомнить нам. Но метод Python time.sleep() требует секунд, а не минут. Поэтому теперь нам нужно преобразовать минуты в секунды:

 
local_time = local_time * 60
 

Это означает: взять все, что находится в памяти под именем local_time, умножить это на 60 и поместить в память под тем же именем.

Шаг 4. Ожидание

Теперь нам понадобится модуль времени, который мы загрузили на 0 шаге:

 
time.sleep(local_time)
 

Это следует читать так: из модуля time взять метод sleep. В памяти найти фрагмент данных под названием local_time. Обработать эту часть данных с помощью sleep и предоставить нам возможность наблюдать за результатом. Что же произойдет? У нас есть количество секунд в local_time. Мы даем это значение на обработку в sleep, и программа “спит” в течение указанного количества секунд. Мы знаем, что она спит, потому что уже прочитали справочное руководство для модуля time.

Шаг 5. Напоминание

Помните, что текст нашего напоминания хранится в памяти под именем text? Настало время его использовать:

 
print(text)
 

Это означает: взять все, что находится в памяти под именем text и вывести на экран. Подобно шагу 1, мы могли бы установить совершенно другую реализацию отправки сообщений. Например, могли бы создать процедуру, которая выводит наше сообщение на 3D-печать в пластике или зажигает некие светодиоды формирующие образ нашего текста. Но сейчас все, что нам нужно, это только этот простой механизм, который выводит наш текст на экран монитора.

Окончательный код

Вот тот окончательный код, который будет у нас работать:

import time
print("What shall I remind you about?")
text = str(input())
print("In how many minutes?")
local_time = float(input())
local_time = local_time * 60
time.sleep(local_time)
print(text)
 

Если вы введете его в свой блокнот Jupyter и запустите (Shift + Enter), то увидите свою программу в действии:

А если вы хотите еще больше попрактиковаться в Python, то можете попробовать бесплатный курс Practicum by Yandex.