Думаю, вам нужен оператор if-else вместо блока try / except:
def take_umbrella(weather, rain_chance):
if rain_chance <= 1.0 and weather in ['sunny', 'cloudy', 'rainy']:
return True
else:
return "{} must either be sunny, cloudy, or rainy AND {} must be an float equal to or less then 1".format(weather, rain_chance)
print(take_umbrella('overcast', 2))
Этот код будет делать то, что вы хотите. Блоки try / except используются по-другому. Это простой пример, просто продемонстрируйте его использование:
x = "abc123"
for i in x:
try:
print(int(i))
except ValueError:
print(f"Failed to convert '{i}' into an integer!")
Вывод:
Failed to convert 'a' into an integer!
Failed to convert 'b' into an integer!
Failed to convert 'c' into an integer!
1
2
3
Без блока try / except, захватывающего ValueError
, который возникает при попытке выполнить int("a")
программа полностью завершилась бы аварийным завершением, прежде чем она смогла бы перебрать всю строку.