VictorK
Если ввести город где нет дождя программа выдает ошибку и вылетает.
Это потому что вы думаете, что чтобы было интереснее изучать программирование, нужно написать какую-нибудь интересную и полезную программку по примеру из интернета, а иначе желание отпадет. У меня знакомый начинал с этого же кода, на нем и закончил, потому что каждый раз,когда он хотел добавить что-то свое, все летело в тартарары, потому как не понимал как это все работает…Вас это же ожидает, если не измените стратегию обучения.
Вот здесь
print("Осадки: " + str(w.rain['1h']) + " mm. в час.\n")
вы хотите вывести осадки, а их нет rain = {}.
Это все потому, что вы видите код снаружи, а нужно видеть изнутри