![](/img/trans.png)
[英]Python - TypeError: object of type 'NoneType' has no len()
[英]Python error "TypeError: object of type 'NoneType' has no len()
我從這個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()
我不太確定為什么會收到此錯誤。 當執行行print(lines)時,它返回None。 這可能是問題所在,但我不確定如何解決。
您的函數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
在調用print
之后,將return user_entries
添加到您的函數中,您的代碼應該可以正常工作
您定義的函數read_lines()
不會向lines
返回任何內容,因此它為None 。
在您的函數中添加打印后的返回。
return user_entries
您還需要在代碼中進行更改,例如line = lines(ci, ci + 1)
lines
是一個列表:不可調用。
ci = 0
而不是ci = o
請清除輸入錯誤,錯誤,然后重試。 應該管用。
我已經使用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: ")
這樣您就不會有下一個錯誤。 ;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.