0

我正在尝试打印此代码,但是当我在 Python 2.7 中使用 print 命令时,我不断收到错误,

因此我非常了解解释器如何读取和执行该程序。放置“print s”以在屏幕上查看结果的理想位置是什么?非常感谢。

n = raw_input('input an integer value to compute its factorial:\n')
n = int(n)

def f(n):
    if n==0:                    
        return 1                
    else:
        m = f(n-1)
        s = n * m
        return s
4

3 回答 3

3

我会将 的定义f移到顶部,在您对 . 的调用之上raw_input。然后在最后,您可以调用fn打印结果:

print f(n)

如果你愿意,你可以将结果存储在一个变量中,尽管这里没有优势:

result = f(n)
print result
于 2013-08-06T02:58:47.687 回答
3

根据我的经验,您可能想要更接近此的东西:

def f(n):
    if n==0:                    
        return 1                
    else:
        m = f(n-1)
        s = n * m
        return s

if __name__ == '__main__':
    n = raw_input('input an integer value to compute its factorial:\n')
    n = int(n)
    result = f(n)
    print result
    # or alternatively for the last two lines, if you don't want to save the result
    print f(n)

这样当您从 IDLE(或直接从命令行)执行此脚本时,它会运行该if __name__块,否则它只是定义函数。

于 2013-08-06T03:03:20.197 回答
0

如果要打印函数的返回值而不仅仅是s,则可以存储返回值并打印:

n = raw_input('input an integer value to compute its factorial:\n')
n = int(n)

def f(n):
    if n==0:                    
        return 1                
    else:
        m = f(n-1)
        s = n * m
        return s

result = f(n)
print result
于 2013-08-06T02:58:10.080 回答