2017-04-09 191 views
0

我从这个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。这可能是问题,但我不知道如何解决它。

+0

你定义的'read_lines()'函数不会返回任何东西到'lines',所以它是** None **。 – bhansa

+0

不要忘记将任何答案标记为[已回答](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

回答

1

你定义read_lines()什么都不返回lines所以它是功能。

在您的功能打印后添加返回。

return user_entries 

而且你需要做的改变你的代码,如line = lines(ci, ci + 1)

lines是一个列表:它不是调用。

ci = 0而不是ci = o

请删除错别字,错误,重试。应该管用。

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和你的代码应工作

0

我已经使用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: ") 

所以你不会有下一个错误。 ;)

相关问题