【问题标题】:Discrepancy between function printing and print function output in Python [duplicate]Python中的函数打印和打印函数输出之间的差异[重复]
【发布时间】:2013-10-26 23:12:24
【问题描述】:

我有一个(可能是笨拙的)函数来找到一个数 n 的最大素因子(如下)。

def largest_prime_factor(n,factor=2):
    if n % factor == 0:
        if n == factor:
            return factor
        else:
            largest_prime_factor(n/factor,factor)
    else:
        largest_prime_factor(n,factor+1)

#Printing function output
print largest_prime_factor(600)

但是当我尝试打印函数返回的输出时,它只会显示None。但是,当我让函数打印其输出(如下)时,它会打印正确的答案(5)。我在上面的 sn-p 中做错了什么?

def largest_prime_factor(n,factor=2):
    if n % factor == 0:
        if n == factor:
            print factor #Printing, not returning
        else:
            largest_prime_factor(n/factor,factor)
    else:
        largest_prime_factor(n,factor+1)

#Calling the function
largest_prime_factor(600)

【问题讨论】:

  • 提示:因为你使用递归 - print 语句只会看到最外面的返回......
  • @JonClements 你睡过吗?

标签: python printing return


【解决方案1】:

您错过了一些回电:

def largest_prime_factor(n,factor=2):
    if n % factor == 0:
        if n == factor:
            return factor
        else:
            return largest_prime_factor(n/factor,factor)
    else:
        return largest_prime_factor(n,factor+1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2022-08-18
    相关资源
    最近更新 更多