MIT edXクラスのタスクに関してあなたに助けを求めるのはこれが2回目です。
タスクは次のとおりです。e、r、i、および c という文字がこの順序で含まれている単語は、erician と見なされます。たとえば、「メリトクラシー」、「ジェネリック」、「デリック」、「ユーフォリック」、「異端者」、「エレクトリック」などの単語は、それぞれ正しい順序でこれらの 4 つの文字が含まれているため、エリシア語であると言えます。「rice」という単語は、4 つの文字が間違った順序で表示されるため、erician ではありません。
この問題では、x のすべての文字が x に現れる順序と同じ順序で word に含まれている場合に True を返す、x_ian(x, word) というより一般化された関数を作成してください。
この関数は再帰的でなければなりません! この問題を解決するためにループ (for または while) を使用することはできません。
そして、これが関数の私のコードです:
if x=="":
return True
if len(x)>len(word):
return False
if x==word:
return True
elif (x[0]==word[0]):
x_ian(x[1:],word[1:])
else:
x_ian(x,word[1:])
現在、関数が True または False ではなく None を返す理由がわかりません。これについて IDLE でデバッガーを使用しましたが、' main '.x_ian().line49: return True で実行を終了します。
それでも関数は None を返します。
どんな助けにも感謝します。