Ошибка: TypeError: an integer is required (got type str)

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Здравствуйте, есть проблема, я делаю программку, где есть напоминание. Но мне надо сделать так чтобы пользователь выбирал дату (Год, месяц, день) и время(Час, минуту, секунду)
Вот код
Python:
# Program v0.1 by Maxim Grushin©


print("Выбери вариант, который ты хочешь использовать\n")
print("✰ Календарь-Посмотреть календарь этого года\n✰ Напоминание-Включить напоминание\n")
print("Подсказка‽: для выбора ответа, вводите именно название функции!")
answer = str(input("Вводить ответ сюда--> "))

if answer == "Календарь":
    import calendar

    print("Календарь на 2020 год : ")
    print(calendar.calendar(2020, 2, 1, 6))
#  ∞
elif answer == "Напоминание":
    import datetime

    data = str(input())
    time = str(input())

    deadline = datetime.datetime(str(data), float(time))
    print("Deadline time: {}.".format(deadline.strftime('%d/%m/%Y %H:%M:%S')))

    import time
    import winsound

    while True:
        now = datetime.datetime.now()
        print('Current time: {}.      '.format(now.strftime('  %d/%m/%Y %H:%M:%S')), end="\r")
        if now >= deadline:
            print("Deadline! time: ")
            winsound.Playsound("sound.mp3", winsound.SND_FILENAME)
            break
        time.sleep(1)
else:
    print("Вы ввели несуществующую функцию")
Python:
Traceback (most recent call last):
  File "Calendar+(ver1).py", line 21, in <module>
    deadline = datetime.datetime(str(data), str(time))
TypeError: an integer is required (got type str)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот пример работы с датой:
Python:
data = '2019/12/29'
time = '19:00:00'
deadline = datetime.datetime.strptime(data + ' ' + time, '%Y/%m/%d %H:%M:%S')
print(deadline)
Дату из строки можно получить методом datetime.datetime.strptime() с указанием нужного формата.
 

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Вот пример работы с датой:
Python:
data = '2019/12/29'
time = '19:00:00'
deadline = datetime.datetime.strptime(data + ' ' + time, '%Y/%m/%d %H:%M:%S')
print(deadline)
Дату из строки можно получить методом datetime.datetime.strptime() с указанием нужного формата.
А как сделать так чтобы пользователь выбирал дату и время сам?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот так:
Python:
data = input()
time = input()
Только нужно вводить в правильно формате, например для пример выше дату в формате 2019/12/29 и время в формате 19:00:00.
 
  • Мне нравится
Реакции: Максим Грушин

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Вот так:
Python:
data = input()
time = input()
Только нужно вводить в правильно формате, например для пример выше дату в формате 2019/12/29 и время в формате 19:00:00.
Спасибо, помогло
 

Форум IT Специалистов