Задать вопрос
@numb7

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

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

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

Нашел ответ:
print (a[-s::]+a[:-s])
  • Вопрос задан
  • 3144 просмотра
Подписаться 1 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 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])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы