关于recursion的问题

写一个function,numbers(s)。s是string,累积s中所有的digit,然后return the string of the digits。如果碰到empty string或者string里面没有数字,则返回empty string ''
结果如下图所示:
图片描述

要求用recursion编写,不能用loop。下面是我自己初步写的code,但是只能返回empty string''
图片描述

望高手能给一个完整的code,多谢!

阅读 2.9k
3 个回答
def numbers(s):
    if len(s) == 0:
        return ''
    return (s[0] if s[0].isdigit() else '') + numbers(s[1:])
ret = ''
def numbers(s):
    global ret
    if len(s):
        if '0' <= s[0] <= '9':
            ret += s[0]
        numbers(s[1:])

if __name__ == '__main__':
    numbers("541df35")
    print ret

这代码蠢到不能看了。
明显是补作业,楼上还一本正经的回答。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题