Я запрограммировал линейное решение поиска. Программа запрашивает у пользователя имя и будет искать список, чтобы узнать, присутствует ли это имя. Если он присутствует, пользователю будет сказано так. Иначе пользователю будет сказано так.Линейное решение поиска
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', но нет' популярныхNames [6] '. Также вы можете просто использовать 'для popularName в популярных именах:' для получения элементов или просто проверить 'if name in popularNames:'. Также вы должны использовать 'while not found' и' if found', а не сравнивать для равенства с 'True' и' False'. – jonrsharpe