我用Python编程,我还有下一个函数:
def devPalabras(nombreF):
"""Receive a file and returns each word in the file
syntax: palabra.devPalabras(<fichero.txt>)"""
if str(nombreF):
file=open(nombreF,'r')
else:
return -1
data = file.readlines()
contador = 0
for renglon in data:
for palabra in renglon.split(' '):
contador+=1
print palabra
我在主程序中调用函数:
palabras = [] #Create a empty list of words
for palabra in devPalabras("palabras.txt"):
palabras.append(palabra)
最后,我要打印这个列表:
print palabras
好吧,当我编译我的程序时,我得到了下一个错误:
TypeError: 'NoneType' object is not iterable
我如何解决这个问题?你知道吗
代码中有几个问题。 1) devalabras函数通常不返回任何值。如果在函数中不返回任何内容,则这是默认值。你知道吗
2)if
str(nombreF)
不是检查它是否是字符串的正确方法。使用isinstance(nombreF,str)3)稍后当函数返回-1时,您将遇到迭代问题。而是引发异常。你知道吗
4)简单地将行拆分为“”将导致最后一个单词以换行符结尾。剥去这个换行符。你知道吗
我相信这就是你想要的:
除了
return -1
之外,您没有返回任何结果,因此调用devPalabras("palabras.txt")
默认返回None
。你知道吗您可以做的是创建一个列表,比如说
listOfPalabras
,每次打印palabra
时,将其添加到列表中:在函数末尾,您可以返回列表:
相关问题 更多 >
编程相关推荐