Python练习题 024:求位数及逆序打印

【Python练习题 024】 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

----------------------------------------------

这题如果不用递归,实在太简单了!!!代码上:

str = input('请输入一个不多于5位的正整数:')
print('这个数字是%s位数,逆序为%s。' % (len(str), str[::-1]))

输出结果如下:

请输入一个不多于5位的正整数:45931
这个数字是5位数,逆序为13954。

就这么简单。真有还有必要写递归函数吗?…… 好吧,我知道这只是一种训练,但我现在睏了,明天再更新递归函数吧…… zzz

【2016-10-19 更新】-----------------------------------------

更新一下递归函数吧。现在我对递归函数的理解是:

def f(x):
    if x == 最小值:
        return 最小值对应的值或无关紧要的值
    else:
        return 一个函数,表达式中要设下 f(x-1) 的套

大概就是这样子吧。就像这题,要逆序重排几个字符,那么在函数里就应该这么写:return 最大的那个字符 + 下一个字符,而这里的“下一个字符”必然也会要求 + 下一个字符的,如此循环至最小的那个 str[0] 。代码如下:

str = input('请输入一个不多于5位的正整数:')
def f(x):
    if x == 0:
        return str[0]
    else:
        return str[x] + f(x-1)
print('%s位数,逆序为:%s' % (len(str), f(len(str)-1)))

搞定!

++++++++++++++++++++++++++++++++++++++

题目出处:编程语言入门经典100例【Python版】

原文地址:https://www.cnblogs.com/iderek/p/5971525.html