Ошибка в консоли: TypeError: '<=' not supported between instances of 'int' and 'str'

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

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Здравствуйте люди, есть ошибка. Как ее исправить? И хотел спросить там сверху есть ветка для календаря, как сделать так чтобы пользователь сам вводил год, такой какой ему нужен
Python:
Traceback (most recent call last):
  File "Calendar+(ver1).py", line 15, in <module>
    print(calendar.calendar(str(year)))
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 381, in formatyear
    for (i, row) in enumerate(self.yeardays2calendar(theyear, m)):
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 274, in yeardays2calendar
    months = [
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 275, in <listcomp>
    self.monthdays2calendar(year, i)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 243, in monthdays2calendar
    days = list(self.itermonthdays2(year, month))
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 199, in itermonthdays2
    for i, d in enumerate(self.itermonthdays(year, month), self.firstweekday):
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 187, in itermonthdays
    day1, ndays = monthrange(year, month)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 125, in monthrange
    day1 = weekday(year, month, 1)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\calendar.py", line 115, in weekday
    if not datetime.MINYEAR <= year <= datetime.MAXYEAR:
TypeError: '<=' not supported between instances of 'int' and 'str'
Python:
# Program v0.1 by Maxim Grushin©

#  Варианты ответов
print("Выбери вариант, который ты хочешь использовать\n")

print("✰ Календарь-Посмотреть календарь этого года\n✰ Напоминание-Включить напоминание\n")

print("Подсказка‽: для выбора ответа, вводите именно название функции!")
answer = str(input("Вводить ответ сюда--> "))

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

    year = input()

    print("Календарь на " + year + " год: ")
    print(calendar.calendar(str(year)))

#  ∞
#  Функция напоминания
elif answer == "Напоминание":
    import datetime

    data = input("Дата==> ")
    time = input("Время==> ")

    deadline = datetime.datetime.strptime(data + "  " + time, '%Y/%m/%d %H:%M:%S')
    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("Вы ввели несуществующую функцию")
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
В самом сообщении об ошибке есть ответ. Прежде всего тебе нужно изучить данную статью: https://python-scripts.com/python-traceback

Она поможет на будущее понять где искать ошибку и как ее решить.

Питон как бы намекает, что ты сравниваешь строку с числом. Это приведет к ошибке.

Ошибка на этой строке:
Python:
if now >= deadline:
Выше ты делал
Python:
now = datetime.datetime.now()
Это вернет unix timestamp, а это тип integer.
Нужно превратить и deadline в unix timestap.
Код:
if now >= deadline.timestamp():
 

Vlad_SD

Активный пользователь
Пользователь
Апр 7, 2020
91
45
18
Python:
year = int(input())

print("Календарь на " + str(year) + " год: ")
print(calendar.calendar(str(year)))

попробуй так
 

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

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Python:
year = int(input())

print("Календарь на " + str(year) + " год: ")
print(calendar.calendar(str(year)))

попробуй так
Не работает :( та же ошибка выскакивает
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Не работает :( та же ошибка выскакивает
Вот пример:
Python:
if answer == "Календарь":
    import calendar
    year = int(input())
    
    t = calendar.TextCalendar()
    # year должен быть int
    print("Календарь на " + str(year) + " год: ")
    t.pryear(theyear=year, w=2, l=1, c=6, m=3)
 
  • Мне нравится
Реакции: Максим Грушин

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