程序29
题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
代码 :
def digit(number): """得到正整数位数""" return len(str(number)) def print_digit(number:int, n:int): """逆序打印该数字:递归函数法""" if n <= 0: return None print_digit(number, n - 1) print(str(number)[digit(number) - n]) if __name__ == "__main__": number = 12345 #设定需要运算的正整数 print(f"答:它是{digit(number)}位数,逆序打印如下:") print_digit(number, digit(number))成果:
答:它是5位数,逆序打印如下:
5
4
3
2
1
后记:
1.不考虑数据可能为字符串、浮点数、负数等情况。(可以考虑先排除负数,再将输入数据转为浮点,再转为整数)
2.有很多方法逆序打印,强迫自己用最麻烦的递归函数编写,可以熟悉递归函数的编写思路。
(1)编写递归函数时必须有结束条件。本例是参数之一递减,减少至小于等于0时退出函数(return),也可以参数递增至大于某个值时退出函数。
(2)调用函数自己的时机(在哪个位置合适)。