Сдвиг строки
Вам предстоит создать генератор, который принимает строку и выдаёт последовательность её символов, сдвинутых на заданное количество позиций 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)