Python 3.5代码求助,卡在截取数字的步骤上

图片说明
我们的作业要求如上,不允许使用list语法,只能使用字符串语法,还有if,for,while从句来进行循环或者判断。

现在自定义函数卡在用isdigit()检测数字上,如果是个位数还好,但是非个位数的话,我就要判断下一个是不是数字,直到判断到下一个不是数字的情况。

    但我在判断的时候遇到一个严重的问题:如果我在倒数第二位检测到一个数字,接下来我要检测倒数第一位,然后我再往后检测一位,就会提示字符串超出范围了。

请问一下这里究竟该怎么自定义函数,或者有没有方法可以在检测到第一个数字的时候直接取到这串数字并且不会有超出范围的方法?

String0 = "cat2dog1qwerty3"
String1 = "if4then2else3a12"

def multi_func(input):
input_list = input
int_set = set([str(i) for i in range(0, 10)])
for i in int_set:
temp_list = ""
for element in input_list:
temp_list += ",".join(element.split(i))

    input_list = temp_list

for element in input_list.split(","):
    if element:
        input = input.replace(element, "{%s}" %  element)

StringRequire = ""
for element in input.split("{"):
    if element:
        Str , num = element.split("}")
        StringRequire += int(num) * Str

return StringRequire

print multi_func(String0)
print multi_func(String1)

String0 = "cat2dog1qwerty3"
String1 = "if4then2else3a12"

def multi_func(input):
input_list = input
int_set = set([str(i) for i in range(0, 10)])
for i in int_set:
temp_list = ""
for element in input_list:
temp_list += ",".join(element.split(i))

    input_list = temp_list

for element in input_list.split(","):
    if element:
        input = input.replace(element, "{%s}" %  element)

StringRequire = ""
for element in input.split("{"):
    if element:
        Str , num = element.split("}")
        StringRequire += int(num) * Str

return StringRequire

print multi_func(String0)
print multi_func(String1)