-1
以下のリニアサーチソリューションをプログラミングしました。プログラムは、ユーザーに名前を尋ね、その名前が存在するかどうかを調べるためにリストを検索します。それが存在する場合、ユーザにその旨が伝えられる。それ以外の場合は、ユーザーにその旨が伝えられます。リニアサーチソリューション
popularNames = ["Andrew","Ben","Charles","David","Ethan","Fred"]
found = False
index = 0
name= input ("Please enter the name you wish to search for:\n")
while found == False and index <7:
if name == popularNames[index]:
found = True
index = index +1
if found == True:
print(name,"is in the list.")
else:
print(name,"is not in the list.")
しかし、プログラムは「名前が見つかりません」というメッセージを表示せず、代わりに構文エラー(以下を参照)を表示します。
line 8, in if name == popularNames[index]: IndexError: list index out of range
どこが間違っていますか?
が、それは 'IndexError'です:あなたは、手動のいずれか反復する必要はありません
。 'index <7'をチェックしますが、' popularNames [6] 'はありません。また、 'popularNamesの' popularName'を使って要素を取得することもできますし、単に 'popularNamesの' name'をチェックすることもできます。また、 'True'と' False'との等価性を比較するのではなく、 '見つからない'と '見つかった場合'を使うべきです。 – jonrsharpe