[英]Function not returning a boolean, returns None always
以下代碼返回None
而不是True
,當輸入表明它應該明確返回True
,這是什么錯誤?
def checkminus(j):
linp = []
for a in j:
if a == '-':
if len(linp) > 0:
linp = []
return False
quit()
else:
linp.append(a)
else:
linp.append(a)
checklen(linp)
def checklen(k):
l = len(k)
print(l)
if l>0:
return True
else:
return False
print(checkminus(['-','5','5','8','2']))
您在調用它時忘記返回checklen()
返回值:
checklen(linp)
在此處添加return
:
return checklen(linp)
請注意, >
已經給您True
或False
,因此您可以直接將其返回:
def checklen(k):
l = len(k)
return l > 0
另一種方法是使用bool(l)
; 列表為空時為False
,否則為True
。
簡化checkminus()
:
def checkminus(j):
linp = []
for a in j:
if a == '-':
if linp:
return False
linp.append(a)
return bool(linp)
在我看來,您似乎想確保-
僅在列表的開頭,或者根本不存在。
如果是這樣,這會更容易:
def checkminus(j):
return len(j) > 0 and '-' not in j[1:]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.