2

ユーザーから名前のリストを取得し、リストを検索するための名前を取得するPythonプログラム(再帰のみを使用し、ループを使用しない)を作成しようとしています。プログラムは、指定されたリストに名前が存在するかどうかを判断する必要があります。さらに、リストの要素が であり"James Christ"、 を検索する"James"場合、プログラムは true を返す必要があります。プログラムの半分を作りました。しかし、私のコードは追加機能を実行しません。私のコードは次のようなものです:

L1=list(input("Enter the list of names : "))
x=input("Enter the name to search : ")

def search(L1,x):
    if len(L1)==0:
        return "Not found!!"
    else:
        if x==L1.pop(0):
         return "Entry found!!"
        else:
         return search(L1,x)

print search(L1,x)

私を助けてください!

4

2 に答える 2

4

これは、元のリストを破棄しないソリューションです。

montys = [
    'John Cleese', 'Graham Chapman', 'Terry Gilliam',
    'Eric Idle', 'Terry Jones', 'Michael Palin']
actor = 'Idle'


def search(data, word):
    if len(data) == 0:
        return "Not found!"
    else:
        if word in data[0]:
            return "Entry found!"
        else:
            return search(data[1:], word)

print(search(montys, actor))

詳細については、 Junuxx の回答を参照してください。

于 2013-02-25T13:44:47.237 に答える
2

の代わりにif x==L1.pop(0)、を使用しますif x in L1.pop(0)

これはとに対して機能しJamesますが、またはJames Christに対しても機能します。Jamesy BobSuperJames

入力がリスト内の名前の単語全体と一致することを確認するには、次のようにしますif x in L1.pop(0).split()。これJames Christは、単語のリスト(['James', 'Christ'])に分割し、そのリスト内の単語の1つとして「James」が出現するかどうかを確認することで機能します。

于 2013-02-25T13:26:49.747 に答える