@leonid_073

Проблема с python, надо вызвать ошибку пользователю, поможете?

Здравствуйте, я новичок и потихоньку изучаю python. Написал программку, которая парсить с сайта информацию о погоде. Встал вопрос о вызове ошибки, которая указывает на то, что город человек не найден и программа должна попросить ввести город еще разок
import requests, bs4
print("""
#########################################################################
-------------------------------------------------------------------------
                               ПОГОДА
-------------------------------------------------------------------------
#########################################################################
	""")
gorod=input ('Введите свой город: ')
s=requests.get('https://sinoptik.com.ru/погода-' + gorod)
b=bs4.BeautifulSoup(s.text, "html.parser")
p3=b.select('.temperature .p3')
pogoda1=p3[0].getText()
p4=b.select('.temperature .p4')
pogoda2=p4[0].getText()
p5=b.select('.temperature .p5')
pogoda3=p5[0].getText()
p6=b.select('.temperature .p6')
pogoda4=p6[0].getText()
print('Утром: ' + pogoda1 + ' ' + pogoda2)
print('Днём: ' + pogoda3 + ' ' + pogoda4)
p=b.select('.rSide .description')
pogoda=p[0].getText()
print(pogoda.strip())
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
s = None
while True:
    gorod = input('Введите свой город: ')
    s = requests.get('https://sinoptik.com.ru/погода-' + gorod)
    if s.status_code == 200:
        break
    elif s.status_code == 404:
        print('Город не найден')
    else:
        raise Exception('Другая ошибка')
b = bs4.BeautifulSoup(s.text, "html.parser")
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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