Как преобразовать тип данных в строку?

Здравствуйте, пишу небольшую прогу - будильник, долго думал над тем, как его реализовать, решил использовать следующий код(оставлю внизу) суть кода, в том, чтобы каждые 15 секунд проверять текущую дату и время и сравнивать их с данными, которые ввел пользователь, но при попытке сравнения типа данных со строкой(ее вводит пользователь) выводит ошибку( ее тоже кину ниже), каким образом можно преобразовать этот тип данных в строку?

Код:

import winsound
import time
import datetime
function = input("Введите будильник или таймер ")
function = function.lower()
if function in "таймер":
    a = float(input("Введите время(в секундах) через которое должен прозвучать сигнал "))
    time.sleep(a)
    winsound.PlaySound('zvuki-zvonok_budilnika.wav', winsound.SND_FILENAME)
elif function in "будильник":
    c = input("h:m")
    while True:
        b = datetime.datetime.now()
        if b[12:18] in c:
            winsound.PlaySound('zvuki-zvonok_budilnika.wav', winsound.SND_FILENAME)
        else:
            time.sleep(15)


Ошибка:

C:\Python32\python.exe D:/Emil/Python/timer/timer.py
Введите будильник или таймер будильник
h:m15:55
Traceback (most recent call last):
  File "D:/Emil/Python/timer/timer.py", line 14, in <module>
    if b[12:18] in c:
TypeError: 'datetime.datetime' object is not subscriptable

Process finished with exit code 1
  • Вопрос задан
  • 358 просмотров
Решения вопроса 2
@WalletDat
with learn Python as Hobby:
в вашей интерпретации можно так:
b =  datetime.datetime.now().timetuple()
if str(b[3])+':'+str(b[4]) == c:
Ответ написан
@Pentblch
Смотрю в сторону Web, начинающий
Почитайте, тут может разберетесь.
Вам нужно время по другому задавать, а не в строку преобразовывать.
d = date(2005, 7, 14)
t = time(12, 30)
datetime.combine(d, t)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы