私は奇妙な問題に遭遇しました。このコードは、それが正しいブランチにして行くとTrueに評価にもかかわらず、いずれの代わりに、真を返します:return文は値の代わりにNoneを返します
edges = { (1, 'a') : [2, 3],
(2, 'a') : [2],
(3, 'b') : [4, 3],
(4, 'c') : [5] }
accepting = [2, 5]
loc = []
def nfsmsim(string, current, edges, accepting):
if string != "":
if ((current, string[0]) in edges.keys()):
global loc
loc = edges[(current, string[0])]
print "edge found:",loc
if (string == ""):
print "string is over",current,accepting
print type(current), type(accepting)
if current in accepting :
print "1"
return True
else:
print "2"
return 2
# fill in your code here
elif (current, string[0]) in edges.keys():
global loc
string = string[1:]
nfsmsim(string, loc[0], edges, accepting)
elif len(loc)>1:
global loc
nfsmsim(string, loc[1], edges, accepting)
# This problem includes some test cases to help you tell if you are on
# the right track. You may want to make your own additional tests as well.
print nfsmsim("abc", 1, edges, accepting)
これの出力は次のようになります。
string is over 5 [2, 5]
<type 'int'> <type 'list'>
1
None (<< instead of True)
あなたが機能 – jamylak
のためのあなたの 'def'を含める必要がありますその後、我々はあなたが印刷されることになっているものを知っているだろう/戻る! – Colleen
があります。質問が更新されました。コードにはreturn文しかありません。私が質問をするのを忘れたという事実です。 – fixxxer