正如标题所示,我正在做一个教程。然而,我遇到了这个错误:
>>> 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()
将导致words
为None
。
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