NameError: имя 'text' не определено при импорте новой функции с именем 'text' - PullRequest
0 голосов
/ 30 декабря 2018
Traceback (most recent call last):
  File "C:\Users\Owner\AppData\Local\Programs\Python\Python37-32\ch6\analyze.py", line 46, in <module>
    words = text.split()
NameError: name 'text' is not defined

Я перебрал свой код, чтобы убедиться, что я ввел его так же, как книга, которой я следую.Я прохожу путь через Head First Learn to Code.Все выглядит так, как должно быть.Я в недоумении, почему мой код продолжает выдавать эту ошибку.

import ch1text

def count_syllables(words):
    count = 0

    for word in words:
        word_count = count_syllables_in_word(word)
        count = count + word_count

    return count

def count_syllables_in_word(word):
    count = 0

    if len(word) <= 3:
        return 1

    vowels = "aeiouAEIOU"
    prev_char_was_vowel = False

    for char in word:
        if char in vowels:
            if not prev_char_was_vowel:
                count = count + 1
            prev_char_was_vowel = True
        else:
            prev_char_was_vowel = False

    return count

def count_sentences(text):
    count = 0

    for char in text:
        if char == '.' or char == ';' or char == '?' or char == '!':
            count = count + 1

        return count

def compute_readability(text):
    total_words = 0
    total_sentences = 0
    total_syllables = 0
    score = 0

words = text.split()
total_words = len(words)
total_sentences = count_sentences(text)
total_syllables = count_syllables(words)

print(total_words, 'words')
print(total_sentences, 'sentences')
print(total_syllables, 'syllables')

compute_readability(ch1text.text)

Есть также текстовый файл, который был сначала файлом ch1text.txt, и мне сказали открыть его в Python, а затем сохранить как ch1text..py перед импортом в Python.Когда я запускаю файл ch1text.py, он запускает текст.Я ожидаю, что другой код прочитает импортированный текст и скажет мне, сколько слов, предложений и слогов содержится в ch1text.py.Вместо этого я получаю сообщение о том, что текст не определен.Пожалуйста, помогите мне.Я потратил слишком много времени, пытаясь понять это самостоятельно, и не чувствую, что могу двигаться вперед, пока не пойму, где я иду не так.

* Отредактировано с правильным отступом, чтобы отразить то, что у меня есть вмой пи документ.

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

проблема заключается в вызове функции.В вашем коде, в котором вы пишете,

words = text.split() <--
total_words = len(words)
total_sentences = count_sentences(text) <--

, если вы тщательно соблюдаете, текст не является глобальной переменной, которая передается text.split или count_sentences.Так что вам нужно это исправить.Вы можете разделить только то, что существует, чего в этом случае нет.

0 голосов
/ 30 декабря 2018

В Python отступ используется для определения группировки операторов .

Возможно, вам просто нужно сделать отступ для всех строк, которые отображаются в:

def compute_readability(text):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...