@numb7

Как выполнить циклический сдвиг на n шагов?

Привет!
не получается выполнить циклический сдвиг на n шагов
Пример:
s = 2
a = 'hello'
print (a[s:] + a[:-s])

В ответе должно быть так : lohel
Подскажите, пожалуйста, где ошибка?

Нашел ответ:
print (a[-s::]+a[:-s])
  • Вопрос задан
  • 2951 просмотр
Решения вопроса 1
Sly_tom_cat
@Sly_tom_cat
.
print (a[len(a)-s:] + a[:-s])
или просто
print (a[-s:] + a[:-s])

Нужно внимательно учитывать индексы: в начальной позиции указания диапазона нужно указывать тот элемент который будет первым, а конечная позиция - указывается элемент, который будет ЗА последним.

Что бы работало с любым шагом полезно смещение нормализовать по модулю длинны:

s %= len(a)
print (a[-s:] + a[:-s])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы