Мне нужно написать функцию, которая возвращает копию строки с двумя крайними правыми символами, перемещенными спереди. Вот мой код:Функция Python (начинающий)
def go_right(mystr):
if mystr >= 2:
for i in range(len(mystr)):
a = mystr[-2:] + mystr[:-2]
return a
Приведенный выше код работает отлично, но я не могу показаться, чтобы обернуть вокруг моей головы, почему я не могу это сделать:
def go_right(mystr):
if mystr >= 2:
for i in range(len(mystr)-2):
a = mystr[-2:] + mystr
return a
Если я использовал выше, если функция I прошел по-привет, он просто вернул бы «lohello». Почему 2 не влияет на миф? Я думал, что он должен проходить через каждого персонажа, за исключением последних двух? Если бы кто-нибудь мог помочь прояснить это для меня, я был бы признателен.
Добавляет ли 'print i' под строку объяснение? Вы зацикливаетесь, и я не уверен, почему; вам не нужен оператор 'for' в любом случае. – Ezra
Одна вещь, которую вы, возможно, захотите запомнить, это то, что нарезка в Python не изменяет исходную строку. Таким образом, взятие 'mystr [-2:]' не «отрубает его» в конце оригинала, оно просто говорит «используйте то, что есть». Перед изменением «оригинала» вам необходимо назначить обратно (назначение среза). –