【问题标题】:Python - Why does it prints "none"? [duplicate]Python - 为什么打印“无”? [复制]
【发布时间】:2023-01-11 07:52:18
【问题描述】:
i = 1
input_number = int(input("Input a digit you wish to count: "))


def count(n):
    global i
    n = int(n/10)
    if n > 0:
        i = i+1
        count(n)
    else:
        j = i
        print(f"j={j}")
        return j


j = count(input_number)
print(f"i={i}")
print(j)

我正在尝试使用递归方式打印数字的数字。我使用了全局计数器来计数,结果可以打印全局计数器。但是,我的问题是 - 为什么我不能使函数返回计数器并直接打印函数结果?它以某种方式返回 None 。

【问题讨论】:

  • 它不会以某种方式返回None。当您不返回任何元素时,它会返回 None。您不会在 if 语句的真实分支中返回任何内容。将 count(n) 更改为 return count(n)

标签: python


【解决方案1】:

count 函数并不总是返回值,因此在这些情况下,它返回 None

如果 n 大于 0,则不会遇到 return

   if n > 0:
       i = i+1
       count(n)

你可能想要:

    if n > 0:
        i = i+1
        return count(n)

另请注意,如果要整数除法,可以使用//。例如。 n = int(n/10) 可以是 n = n // 10 或只是 n //= 10

【讨论】:

  • 太感谢了!
猜你喜欢
  • 2015-08-21
  • 1970-01-01
  • 2015-05-02
  • 2013-01-05
  • 2021-12-15
相关资源
最近更新 更多