2016-10-04 92 views
-3

我有2個問題需要尋求幫助。有一個問題我不完全明白,所以如果有人能夠幫助我,那會很好。Python迭代作業

問題之一(一個我並不完全理解):

一個E的定義是

Formula for e

這可以作爲my_e = 1 /計算math.factorial(0)+ 1/math.factorial(1)+ 1/math.factorial(2)+ 1/math.factorial(3)+ ...

設n是math.factorial()函數的輸入數字。 n依次取0,1,2,3等。找到最小的n,使得(my_e - math.e)的絕對值小於或等於10-10。也就是說,abs(my_e - math.e)< =(10 ** -10)。

我只是不完全明白我被要求做什麼。澄清會很好。謝謝!

問題2:

要求用戶輸入一系列整數。將它們彙總並打印出用戶輸入的總數和整數。

My code

因此,什麼應該發生的是之後我進入我想輸入數字,並按下回車鍵,就應該計算並打印出「總和= 25計數= 3」。屏幕截圖顯示了我收到的錯誤消息。

任何幫助你有歡迎和極大的讚賞。

+1

我們不會爲你做你的功課。如果你花時間閱讀規則,[幫助],[常見問題],[麥克],然後提出一個新的問題,然後我們可以幫助你。 –

+1

另外,每個問題有一個問題,因爲這兩者在技術上完全不相關。 – Macke

+1

這是一個很好的問題**要求你的導師**或你的學校的部門*導師*這項任務要求你做什麼。 StackOverflow實際上並不是要求澄清你的老師家庭作業的地方,最好的答案是將作業分配給你的人。之後,如果您在完成作業解決方案時遇到特定困難,可以在此處獲得幫助。 – davedwards

回答

0

至於你的第一個問題有云:

>>> import math 
>>> math.e 
2.718281828459045 
>>> sum(1.0/math.factorial(i) for i in range(5)) 
2.708333333333333 
>>> abs(sum(1.0/math.factorial(i) for i in range(5)) - math.e) < 10**-10 
False 
>>> abs(sum(1.0/math.factorial(i) for i in range(30)) - math.e) < 10**-10 
True 

因此,介於n == 5n == 30你得到e 10位小數。在while循環中按照術語創建和項(而不是像我一樣使用和函數,因爲您不太可能看到該語法)。在循環的每一次通過中,將總和與math.e進行比較。當你達到目標準確度時停止。返回最後的n

+0

非常感謝!這比我所要求的還要多。我現在知道了。我真的很感激,並再次感謝你! –