Вылетает код при ненайденной статье в википедии

имеем код

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('что ищем?')
→ Ссылка