НачатьНачать бесплатно

Сдвиг строки

Вам предстоит создать генератор, который принимает строку и выдаёт последовательность её символов, сдвинутых на заданное количество позиций shift. Например, строка 'sushi' при сдвиге на 2 позиции вправо (shift = 2) даёт последовательность 'h', 'i', 's', 'u', 's', а при сдвиге на 2 позиции влево (shift = -2) — 's', 'h', 'i', 's', 'u'.

Подсказка: используйте оператор % для циклического обхода допустимых индексов. Он возвращает неотрицательный остаток как для положительных, так и для отрицательных чисел, что удобно при сдвиге индекса.

Например, рассмотрим переменную string = 'python', содержащую строку из 6 символов:

  • 2 % 6 = 2 (то есть string[2 % 6] — это t)
  • 0 % 6 = 0 (то есть string[0 % 6] — это p)
  • -2 % 6 = 4 (то есть string[-2 % 6] — это o)

Это упражнение является частью курса

Практика задач для собеседования по программированию на Python

Посмотреть курс

Инструкции к упражнению

  • Переберите индексы строки с помощью переменной len_string.
  • Определите, какой символ соответствует каждому индексу после применения сдвига.
  • Создайте генератор, который сдвигает строку 'DataCamp' на 3 позиции вправо (результат: "ampDataC").
  • Соберите новую строку с помощью генератора и выведите её на экран.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

def shift_string(string, shift):
    len_string = len(string)
    # Loop over the indices of a string
    for idx in ____:
        # Find which character will correspond to the index.
        ____ ____[____]
       
# Create a generator
gen = ____

# Create a new string using the generator and print it out
string_shifted = ''.____
print(string_shifted)
Редактировать и запускать код