Этот код просто ищет строку в другой строке и возвращает последнее сообщение о возникновении в строке поиска или -1, если его не найдено.Python While Loop - переменная, не обновляющаяся?
Я не понимаю, почему моя переменная next_y
не обновляется, учитывая, что pos
- это вход в вычисления next_y
. Я думал, что если я обновлю pos
, то next_y
также должен обновиться. Вместо этого pos
обновляется и остается в цикле навсегда.
def find_last(x,y):
if x.find(y) == -1:
return -1
pos = x.find(y)
next_y = x.find(y, pos + 1)
while next_y != -1:
pos = pos + next_y
return pos
search = 'tom ran up but tom fell down'
target = 'tom'
print(find_last(search,target))
Нет, это предположение неверно: «Я думал, что если я обновляю' pos', тогда 'next_y' также должен обновляться». Вам нужно явно назначить 'next_y', т. Е.' Next_y = <вставить что-то здесь> ' –
x.find() возвращает число, результат вычисления при его запуске. Если вы хотите снова вычислить это значение, вам нужно снова позвонить ему. – lolopop