Задать вопрос
@zakatzakatom

Как исправить ошибку NameError: name 'language' is not defined?

import wikipedia


def IsLanguageExistInWikipedia(language):
    if language in wikipedia.languages():
        return True
    else:
        return False


def LanguageSetup(language):
    if IsLanguageExistInWikipedia(language):
        wikipedia.set_lang(language)
    else:
        return False

def CountWordsInPage(page):
    return len(page.summary.split())


def MaximumCountWordsOnPagesAndTitle(names):
    maximum = -1
    title = ""
    for name in names:
        count = CountWordsInPage(wikipedia.page(name))
        if count >= maximum:
            maximum = count
            title = name
            return f"{maximum} {title}"


def IsPageAvailable(name):
    try:
        wikipedia.page(name)
    except Exception:
        return False
    return True

def CreateChain(names):
    chain = [names[0]]
    for index in range(len(names) - 1):

        page = wikipedia.page(names[index])

        if names[index + 1] in page.links:
            chain.append(names[index + 1])
        else:

            for link in page.links:

                if not IsPageAvailable(link):
                    continue
                intermediate = wikipedia.page(link)

                if names[index + 1] in intermediate.links:
                    chain.append(intermediate.title)
                    chain.append(names[index + 1])
                    break
    return(chain)

input = ['Чуумпу далай', 'Хоту Америка', 'Континент', 'sah']
# input = input().split(', ')
if not IsLanguageExistInWikipedia(language):
    print('no results')
else:
    LanguageSetup(input[-1])
    print(MaximumCountWordsOnPagesAndTitle(input[0:-1]))
    print(CreateChain(input[0:-1]))
  • Вопрос задан
  • 5745 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
adugin
@adugin Куратор тега Python
Переменная language не определена на момент вызова этого фрагмента. Вы не обработали input и не присвоили значение переменной language:
if not IsLanguageExistInWikipedia(language):
    print('no results')

К тому же вы убили функцию input(), назвав этим словом переменную, в которую зачем-то положили список языков. Разберитесь, что и зачем вы делаете.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT
Front-end разработчик
Я не увидел параметр в функции, обновляю ответ. Дело не в кавычках, а в том, что у вас собственно и нет этого language, вот тут вот

if not IsLanguageExistInWikipedia(language):
    print('no results')


Вы должны его определить, вероятно это строка с кодом страны, распечатать вы их можете из wikipedia.languages()
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы