@Moroz22848

В чем ошибка может заключаться?

Нужно написать код по заданию, вроде как всё сделал но выдает ошибку "код работает, но сделал что то лишнее или что то не так" Задание вот:

Напишите функцию what_weather() (англ. «какая погода?»), которую затем будете использовать в коде Анфисы:

Выполните HTTP-запрос, поместив вызов функции get() внутрь блока try.
Значения URL и параметров получите из функций make_url() (в неё нужно передать нужный город как аргумент city) и make_parameters().
При «выбрасывании» исключения типа requests.ConnectionError (от англ. «ошибка соединения») — функция what_weather() должна возвращать сообщение об ошибке '<сетевая ошибка>'.
Если код HTTP-ответа равен 200 (всё хорошо), верните из функции текст ответа. В противном случае функция должна вернуть строку '<ошибка на сервере погоды>'.
Скрин ошибки: https://pastenow.ru/7486809761d967f85c31e2849cc5160c

Сам код вот:
import requests


cities = [
    'Омск',
    'Калининград',
    'Челябинск',
    'Владивосток',
    'Красноярск',
    'Москва',
    'Екатеринбург'
]


def make_url(city):
    # в URL задаём город, в котором узнаем погоду
    return f'http://wttr.in/{city}'


def make_parameters():
    params = {
        'format': 2,  # погода одной строкой
        'M': ''  # скорость ветра в "м/с"
    }
    return params


def what_weather(city):
    try:
        response = requests.get(make_url(city), params=make_parameters())
        if response.status_code == 200:
            return response
        elif response.status_code != 200:
            return '<ошибка на сервере погоды>'
    except requests.ConnectionError:
        return '<сетевая ошибка>'
    


print('Погода в городах:')
for city in cities:
    print(city, what_weather(city))
  • Вопрос задан
  • 2435 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vladoshka
В функции what_weather( ) при коде 200 Вам нужно вернуть response.text вместо response
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы