Две версии, возвращают противоположные ответы, но всегда один выходит неправильно. Я не знаю, где я ошибся. Я пробовал ряд других вариантов, но, похоже, это ближе всего. EDIT: Нужно быть в циклеПроблема с итерацией питона
цели: определить элемент в списке, определить, когда элемент не находится в списке, определить, когда список [], возвращать строки соответственно.
def search_for_string(a_list, search_term):
i=0
for search_term in a_list:
i += 1
if a_list[i] == search_term:
return 'string found!'
elif a_list[i] != search_term:
return 'string not found2'
if len(a_list) == 0:
return 'string not found'
apple = search_for_string(['a', 'b', 'c'], 'd')
print(apple)
def search_for_string(a_list, search_term):
i=0
for search_term in a_list:
if a_list[i] == search_term:
return 'string found!'
elif a_list[i] != search_term:
return 'string not found2'
i += 1
if len(a_list) == 0:
return 'string not found'
apple = search_for_string(['a', 'b', 'c'], 'd')
print(apple)
другие испытания:
apple = search_for_string(['a', 'b', 'c'], 'b')
apple = search_for_string([], 'b')
Прежде всего, вы переписываете значение переменной search_term. Например, вы передаете его как «d», но оно будет перезаписано, потому что ваш цикл for использует одно и то же имя переменной. Чтобы узнать, что происходит, попробуйте напечатать значение search_term внутри цикла for. (т. е. добавить 'print (search_term)' как строку под первой строкой цикла for.) Это может помочь вам отладить. –
Я понимаю, что вы имеете в виду, но я не знаю, что с этим делать. Хаха, я буду продолжать беспорядок. – Megan
Возможно, вы захотите посмотреть 'enumerate().' Он сохранит вам объект 'i'. – boardrider