python3递归打印数字n

2024-09-24 20:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用递归(基本上回忆函数)和打印数字的数字,但我不能使用str,这个函数不能返回任何东西,我在想为什么我的函数会出错,以及如何实际修复它。。。 我想真的很难,但如果我不能使用字符串,我将无法打印这个 函数应该有一个num作为参数,示例是12345 运行python应该打印的函数

5
4
3
2
1

def printDigit(num):
    if num // 10 == 0:
        return num
    print(num % 10)
    return printDigit(num//10)

printDigit(12345)

Tags: 函数字符串示例参数returnifdef数字
1条回答
网友
1楼 · 发布于 2024-09-24 20:29:53

不打印基本情况,而是返回它,因此如果没有显式调用print,函数中的最终值将不会打印。你知道吗

def printDigit(num):
    print(num % 10)
    num //= 10
    if num != 0:
      printDigit(num)

printDigit(12345)

输出:

5
4
3
2
1

下面是您的代码在REPL中的作用:

In [1]: def printDigit(num):
   ...:     if num // 10 == 0:
   ...:         return num
   ...:     print(num % 10)
   ...:     return printDigit(num//10)
   ...:
   ...: printDigit(12345)
   ...:
5
4
3
2
Out[1]: 1

如您所见,1这里不是打印的,而是返回的。在许多Python交互式shell中,函数的结果是打印出来的,这就是为什么您的输出在shell中看起来可能是正确的。你知道吗

相关问题 更多 >