学习Python-语法错误使我无法继续学习教程



正如标题所示,我正在做一个教程。然而,我遇到了这个错误:

>>> from words import (fetch_words, print_words)
>>> print_words(fetch_words())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:UsersjjoseyDocumentspyfundwords.py", line 12, in print_words
    for word in story_words:
TypeError: 'NoneType' object is not iterable

调用此文件(words.py(时:

from urllib.request import urlopen
def fetch_words():
    with urlopen('http://sixty-north.com/c/t.txt') as story:
        story_words = []
        for line in story:
            line_words = line.decode('utf-8').split()
            for word in line_words:
                story_words.append(word)
def print_words(story_words):               
    for word in story_words:
        print(word)
def main():
    words = fetch_words()
    print_words(words)          
if __name__ == '__main__':
    main()

我知道这个错误表明我正在调用一个null数组。但这正是导师在视频中所做的,所以我认为我在某个地方犯了一个拼写错误,导致了错误。这是我学习Python的第一天,所以我没有发现它。

感谢您的帮助。感谢

尝试将return语句放在fetch_words的末尾。如果没有它,words = fetch_words()将导致wordsNone

def fetch_words():
    with urlopen('http://sixty-north.com/c/t.txt') as story:
        story_words = []
        for line in story:
            line_words = line.decode('utf-8').split()
            for word in line_words:
                story_words.append(word)
    return story_words
def fetch_words():
    with urlopen('http://sixty-north.com/c/t.txt') as story:
        story_words = []
        for line in story:
            line_words = line.decode('utf-8').split()
            for word in line_words:
                story_words.append(word)

此函数有一个错误。。。它不会将return作为一个值,尽管稍后会尝试使用返回的值。试试这个。。。

def fetch_words():
    story_words = []
    with urlopen('http://sixty-north.com/c/t.txt') as story:
        for line in story:
            line_words = line.decode('utf-8').split()
            for word in line_words:
                story_words.append(word)
    return story_words

最新更新