2012-02-14 92 views
0

所以我的任務是這樣的:「除了使用您的語言的標準雙精度精度外,還使用平方根知識,第一個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() 

然而,當我運行這個紙條t在終端,這是輸出:

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

所以我只是決定在終端運行Python,並在那裏做。我做了幾乎相同的事情,除了它的工作。

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

我希望有人能夠幫助解釋發生了什麼事。謝謝!

+1

該腳本將不會在交互式Python在所有的工作。在'>>>'提示符處輸入'print sumsqrt',看看它做了什麼。這個標題非常具有誤導性。你能改變它爲「我的腳本打印函數而不調用函數」或描述**真正**問題的東西。 – 2012-02-14 10:56:01

+0

更改標題,感謝您的幫助! – mcbaby 2012-02-14 22:02:39

回答

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. 
+0

完美工作,謝謝! – mcbaby 2012-02-14 22:04:13

1

這是因爲當你在main鍵入的代碼片段:

print sumsqrt 

你告訴打印 「對象」 sumsqrt。 這是一個功能

嘗試編輯以前的片段在print sumsqrt()

+0

是的,現在有道理,謝謝! – mcbaby 2012-02-14 22:04:51

相關問題