Вылетает код при ненайденной статье в википедии
имеем код
import wikipedia
what_search = input('что ищем?')
print(wikipedia.summary(what_search))
при what_search = "цоррарйгш9у9сойё3оу" процесс останавливается по причине ненайденной статьи. Есть ли возможность выполнять код только в том случае, если статья была найдена ?
Ответы (2 шт):
Автор решения: dima87g
→ Ссылка
Ловите исключения:
import wikipedia
what_search = input('что ищем?')
try:
print(wikipedia.summary(what_search))
except wikipedia.exceptions.PageError:
print('Статья не найдена.')
После можно будет обернуть в цикл, чтобы после неудачной попытки попробовать ещё раз. Либо через finally. Здесь прекрасно расписано: https://pythonworld.ru/tipy-dannyx-v-python/isklyucheniya-v-python-konstrukciya-try-except-dlya-obrabotki-isklyuchenij.html
Чтобы после неудачной попытки не происходило ничего, после except, вместо print поставить pass:
import wikipedia
what_search = input('что ищем?')
try:
print(wikipedia.summary(what_search))
except wikipedia.exceptions.PageError:
pass
Автор решения: D. Violet
→ Ссылка
import wikipedia
# функция запроса искомого
def step_1(searh_text):
what_search = input(str(searh_text))
step_2(what_search)
# функция поиска, повтор запроса при успехе и неудаче
def step_2(keyword):
try:
search = wikipedia.summary(keyword)
print(search)
step_1('поищем еще что-нибудь?')
except wikipedia.exceptions.PageError:
print('статья не найдена')
step_1('попробуйте искать иначе')
# вызов первой функции (запрос искомого)
step_1('что ищем?')