Python的错误“类型错误:类型 'NoneType' 对象没有LEN()
问题描述:
我从这个Python代码Python的错误“类型错误:类型 'NoneType' 对象没有LEN()
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。这可能是问题,但我不知道如何解决它。
答
你定义read_lines()
什么都不返回lines
所以它是无功能。
在您的功能打印后添加返回。
return user_entries
而且你需要做的改变你的代码,如line = lines(ci, ci + 1)
lines
是一个列表:它不是调用。
ci = 0
而不是ci = o
请删除错别字,错误,重试。应该管用。
答
您的功能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
和你的代码应工作
答
我已经使用Python 2.7
执行该代码 - >功能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: ")
所以你不会有下一个错误。 ;)
你定义的'read_lines()'函数不会返回任何东西到'lines',所以它是** None **。 – bhansa
不要忘记将任何答案标记为[已回答](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwjf__iKnpnTAhXky4MKHeloBR8QFggZMAA&url=https%3A% 2F%2Fmeta.stackexchange.com%2Fquestions%2F5234%2Fhow-确实接受-一个应答工作&USG = AFQjCNE2e2orpogybVZU_sdJD6evWbT5Fw&BVM = bv.152174688,d.amc及CAD = RJA) – bhansa