Я должен:
Написать функцию, осадки (d, a, b), которая принимает параметры:
d: Словарь, отображающий сезон и количество осадков для этого сезон. a: Один сезон b: Другой сезон
Ваша функция должна возвращать True, если количество осадков в сезоне a было больше, чем в сезоне b, и False в противном случае. Если количество осадков было равным, верните False.
Ваша функция должна обрабатывать следующие ошибки следующими способами:
Если a или b не являются допустимым сезоном в словаре, вы должны вернуть сообщение об ошибке (в виде строки), отформатированное точно так: «Ошибка: ключа нет в словаре».
Если значения количества осадков в каждом сезоне недопустимы для сравнения, то есть одно из них не является число, вернуть сообщение об ошибке (в виде строки) в точном формате: «Ошибка: недопустимые типы данных в словаре?»
Вы можете предположить, что ни один тестовый пример не вызовет оба типа ошибок (поэтому вы не необходимо решить, возвращать ли ошибку ключа или ошибку недопустимого типа, когда вы столкнетесь с обоими). Однако вы не должны делать никаких предположений о существующих сезонах - иногда может быть сезон «картофеля».
Я написал функцию, которая в основном верна
def precipitation(d, a, b):
try:
if d[a] > d[b]:
return True
else:
return False
except:
if a not in d or b not in d:
return ("Error: Key is not in Dictionary.")
if d[a] not in (int) or d[b] not in (int):
return ("Error: Invalid data types in Dictionary?")
Когда я запустите эту функцию с помощью тестового примера
precipitation({"Spring": 'cats', "Summer": 313, "Fall": 1457, "Winter": 354}, "Summer", "Spring") == 'Error: Invalid data types in Dictionary?'
Я получаю сообщение об ошибке argument of type 'type' is not iterable
Как я могу это исправить и что вызывает проблему