Вы не можете «удалить» символы из строки, так как строки неизменяемы. То, что вы можете сделать, это переназначить с измененной строкой.
Что касается цикла, вы можете использовать оператор %
(модуль) для эффекта cycli c. Прежде всего вам нужно будет пометить первый индекс для подсчета на каждой итерации:
start = 0
Затем мы продолжим итерацию, пока у нас не останется одна буква:
while len(word) > 1:
Теперь мы хотим найти индекс следующей буквы, которая будет удалена. Как я уже сказал, с использованием %
мы вернемся к 0
после последней буквы:
to_remove = (start + value - 1) % len(word)
Теперь нам нужно фактически удалить найденное письмо, как я объяснил, у нас будет переназначить переменную, и мы избавимся от буквы, используя нарезку:
word = word[:to_remove] + word[to_remove+1:]
Все вместе у нас получится что-то вроде:
def remove_letters(word, value):
start = 0
while len(word) > 1:
to_remove = (start + value - 1) % len(word)
start = to_remove
word = word[:to_remove] + word[to_remove+1:]
return word
Несколько примеров:
>>> remove_letters('NAME', 3)
'N'
>>> remove_letters('NAME', 4)
'A'
>>> remove_letters('NAME', 5)
'A'