У меня есть функция, где пользователь вводит определенную строку, которая может быть либо закодирована, либо декодирована.Это должно следовать длине пробега.У меня проблемы с фокусировкой на декодировании.Функция прекрасно работает, если бы я ввел «a7bc3», но не работает, если бы она имела двузначное число, например «b2hm11».Предполагается, что выходной сигнал будет «bbhmmmmmmmmmmm» (если вы считаете, что 11 м).
Как я могу заставить эту функцию распознавать двузначные числа или иметь числа, установленные в определенном диапазоне?Я попытался в коде ниже в комментариях, установив условное заявление.Не работаетЯ хочу сохранить мою рекурсивную логику в этой функции.
Код ниже:
def decode(user_input):
if len(user_input) < 2:
return user_input
char = user_input[0]
num = user_input[1]
# if user_input in range(0, 9):
# num = user_input[1]
# else:
# break
if num.isdigit():
return char * int(num) + decode(user_input[2:])
else:
return char + decode(user_input[1:])
print(decode("b2hm11"))
print(decode("abu6"))