@mirindanda

Почему функция возвращает None?

from datetime import date, timedelta
import os 
os.system('cls')

def date():
    s = input("Write 1 for today, 2 for yesterday and 3 for random date: ")
     
    if s == 1:
        last_date = (date.today())
        link_today = "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=" + str(last_date)
        return link_today
    elif s == 2:
        yesterday = print(date.today() + timedelta(days=-1)
        return yesterday
date()
  • Вопрос задан
  • 119 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, input возвращает строку, которая очевидно не может быть равна числу. Во-вторых, нет альтернативных условий.
Ответ написан
@kurrbanov
Пишу бэкенд на Питоне
1. Оберните input() в int():
s = int(input("Write 1 for today, 2 for yesterday and 3 for random date: "))


2. И print здесь зачем? Он же ничего не возвращает, отсюда и переменная yesterday будет None.
yesterday = print(date.today() + timedelta(days=-1)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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