Przesunięcie stringa
Stworzysz generator, który dla podanego stringa generuje sekwencję jego znaków przesuniętych o określoną liczbę pozycji shift. Na przykład string 'sushi' daje sekwencję 'h', 'i', 's', 'u', 's' przy przesunięciu o 2 pozycje w prawo (shift = 2). Przy przesunięciu o 2 pozycje w lewo (shift = -2) wynikowa sekwencja to 's', 'h', 'i', 's', 'u'.
Wskazówka: użyj operatora %, aby cyklicznie przechodzić przez prawidłowe indeksy. Zastosowany do liczby dodatniej lub ujemnej zwraca nieujemną resztę z dzielenia, co ułatwia przesuwanie indeksu.
Rozważ na przykład następującą zmienną string = 'python', zawierającą string złożony z 6 znaków:
2 % 6 = 2(a więcstring[2 % 6]tot)0 % 6 = 0(a więcstring[0 % 6]top)-2 % 6 = 4(a więcstring[-2 % 6]too)
To ćwiczenie jest częścią kursu
Ćwiczenie pytań na rozmowach kwalifikacyjnych z programowania w Pythonie
Instrukcje do ćwiczenia
- Iteruj po indeksach stringa, korzystając z dostarczonej zmiennej
len_string. - Wyznacz, który znak odpowiada danemu indeksowi po wykonaniu przesunięcia.
- Utwórz generator, który przesuwa string
'DataCamp'o 3 pozycje w prawo (czyli daje"ampDataC"). - Utwórz nowy string za pomocą generatora i wyświetl go.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)