我的脚本在不调用函数的情况下打印函数

时间:2012-02-14 08:54:00

标签: python

所以我的任务是这样的:“除了标准的双精度准确度和你的语言之外,使用你的平方根知识,前10 ^ 5平方根之和的平方根是什么?

sqrt( sqrt(0) + sqrt(1) + sqrt(2) + ... + sqrt(99999) + sqrt(100000) )

输入四舍五入到最接近整数的数字

我创建了一个脚本:

from math import sqrt

def sumsqrt():
    return sqrt(sum(map(sqrt, range(100001))))

def main():
    print sumsqrt      

if __name__ == '__main__':
  main()

但是,当我在终端中运行此脚本时,这是输出:

mcbaby$ python cs28.py
<function sumsqrt at 0x652b0>

所以我决定在终端中运行Python,并在那里执行。除了有效之外,我做了几乎相同的事情。

>>> from math import sqrt
>>> sqrt(sum(map(sqrt, range(100001))))
4591.5148887832138

我希望有人可以帮助解释发生了什么。谢谢!

2 个答案:

答案 0 :(得分:5)

更改

print sumsqrt # print the address of the object in memory, similar to id(sumsqrt)

print sumsqrt()  # call the function and print what it returns.

答案 1 :(得分:1)

这是因为当您输入main代码片段时:

print sumsqrt 

您告诉打印“对象”sumsqrt 。 这是功能

尝试修改print sumsqrt()

中的上一个代码段