Как вы заметили, вы не можете передать список и использовать его в качестве индекса.
Вам придется циклически проходить по каждому индексу или создать одну полную строку и распечатать ее.
Например,
print(target,"\nappears in the following locations: ", end="")
for index in location:
print(months[index], end=" ")
print("")
end=""
означает, что print добавит пустую строку в конце вместо обычной новой строки.
Также вы можетеулучшить ваш код двумя другими способами.
Логическое значение found
может соответствовать списку location
с любыми значениями в нем, поэтому
if location: # an empty list evaluates to False
print("Found")
else:
print("Not found")
И ваш ввод может выглядеть следующим образомвместо этого
target = None
done = False
while not done:
try:
target = int( input("Please enter the amount you are looking for:") )
done = True
except ValueError:
print("Wrong value, input a number.")
, поэтому пользователь может несколько раз потерпеть неудачу, и программа не будет запущена.