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

Как заставить двигаться черепаху?

Есть функция, в которую передаётся один аргумент целое число t>0.
нужно повторить t раз следующую операцию: допустим, на предыдущем шаге мы получили строку G. Нужно к ней приписать букву X, а потом приписать снова G, но, во-первых, прочитанную с конца, а, во-вторых, в которой буквы R заменены на буквы Z и наоборот. Например, при t=1 получается XXZ как X + X + Z, при t=2 получается XXZXXZZ = XXZ + X + XZZ

У меня получилось так, но это скорее всего неправильно:

def f(t, d):
    if t == 0:
        pass
    else:
        f(t - 1, 'X')
        print(d, end='')
        f(t - 1, 'Z')

f(4, 'X')


Так же не смог подключить библиотеку turtle, чтобы заставить двигаться её по полученным правилам.
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
#подготавливаем таблицу замены символов
transform_table = str.maketrans( { 'X': 'Z', 'Z': 'X' } )
#функция, производящая один проход преобразования строки
#input[::-1] - это строка, развернутая наоборот
#метод translate() заменяет символы согласно указанной таблице замен
def transform_once(input: str) -> str:
  return input + 'X' + input[::-1].translate(transform_table)
#функция, производящая несколько проходов преобразования строки
def transform_multiple(input: str, t: int) -> str:
  for _ in range(t):
    input = transform_once(input)
  return input
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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