-2
我發現了密切相關的主題,但它沒有回答我的問題。我的single_insert_or_delete
函數返回0
,1
或2
並基於該值我想在我的spelling_corrector
函數中使用它,但到目前爲止我遇到了麻煩,當我使用第一個函數返回的if value:
作爲我的主python函數的參數它不會接受這些值並且python返回None。我在這裏錯過什麼?如何在新函數中使用布爾值函數返回值python
def spelling_corrector(s1,s2):
out_list=[]
def single_insert_or_delete(s1,s2):
a=s1.lower()
b=s2.lower()
if (len(a)==len(b))and (a==b):
return 0
elif len(a)>len(b):
if b in a:
if len(a)-len(b)==1:
return 1
else:
return 2
elif len(a)< len(b):
if a in b:
if len(b)-len(a)==1:
return 1
else:
count =0
for x in a:
if x in b:
count+=1
if len(b)-count==1:
return 1
else:
return 2
else:
return 2
這是主程序
s1= s1.split() #This will return list
for x in s1:
single_insert_or_delete(x,s2)
if 0:
out_list.append(x)
elif 1:
out_list.append(x)
elif 2:
out_list.append(x)
else:
out_list.append(x)
out_str=" ".join(out_list)
return out_str
測試輸出
a="That is the Firs cas"
b=['that','first','case','car']
x=spelling_corrector(a,b)
print(x)
你的代碼格式出錯了。請參閱[Markdown幫助 - 代碼和預格式化文本](http://stackoverflow.com/editing-help#code)並重試。 – Kevin
在'single_insert_or_delete'中檢查你的邏輯,有許多分支不返回一個值(並因此落在最後,返回None),例如, 'single_insert_or_delete('abba','bb')' – thebjorn