我从这个python代码
收到错误def read_lines():
user_entries = []
contin = True
while contin == True:
user_input = input(str("Enter string or just press enter to finish: "))
user_entries.append(user_input)
if len(user_input) == 0:
contin = False
print(user_entries)
lines = read_lines()
print(lines)
ci = o
contin = True
while contin:
if ci == len(lines):
contin = False
else:
line = lines(ci, ci + 1)
ci = ci + 1
print(ci, line)
然后我得到了这个错误...
Traceback (most recent call last):
File "test.py", line 8 in <module>
if ci == len(lines):
Type Error: object of type 'NoneType' has no len()
我不太清楚为什么会收到此错误。当它执行行打印(行)时,它返回None。这可能是问题,但我不确定如何解决它。
答案 0 :(得分:1)
您的函数read_lines
不会返回任何内容
def read_lines():
user_entries = []
contin = True
while contin == True:
user_input = input(str("Enter string or just press enter to finish: "))
user_entries.append(user_input)
if len(user_input) == 0:
contin = False
print(user_entries) # this prints user_entries but doesn't return it
在致电return user_entries
后向您的函数添加print
,您的代码应该有效
答案 1 :(得分:1)
您定义的功能read_lines()
不向lines
返回任何内容,因此无。
在您的功能中,在打印后添加返回。
return user_entries
您还需要对代码进行更改,例如line = lines(ci, ci + 1)
lines
是一个列表:它不可调用。
ci = 0
代替ci = o
请删除拼写错误,错误,然后重试。应该工作。
答案 2 :(得分:0)
我使用python 2.7
执行了此代码 - &gt;函数read_lines()
不返回任何一件事。
但在while循环中,而不是使用:
user_input = input(str("Enter string or just press enter to finish: "))
使用:
user_input = raw_input("Enter string or just press enter to finish: ")
所以你不会有下一个错误。 ;)