看板 Python 關於我們 聯絡資訊
版上的各位前輩大家好 小弟剛剛入門Python這個領域 正在寫一個方程式 可是一直解不出來 想尋求各位前輩的幫助 謝謝! 題目:輸入一整數n值,計算1-1/2+1/3-1/4+...+1/n 我寫出的程式: def sum(n): sum=0 i=1 while i<=n: if i%2==0: sum=sum-(1/i) else: sum=sum+(1/i) return sum(n) i+=1 print(sum(3)) 然後他會提示 TypeError Traceback (most recent call last) <ipython-input-35-059adbd6225d> in <module>() 11 float(sum) 12 ---> 13 print(sum(3)) <ipython-input-35-059adbd6225d> in sum(n) 7 else: 8 sum=sum+(1/i) ----> 9 return sum(n) 10 i+=1 11 float(sum) TypeError: 'float' object is not callable 但是小弟剛學,看不懂這要如何修正,希望各位前輩可以幫幫忙,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.222.146 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1522034800.A.672.html
somoskylin: 為什麼return 是n,而不是算出來的結果? 03/26 11:29
somoskylin: 建議你變數不要取跟function一樣,可能會有問題 03/26 11:31
somoskylin: 我也是新手,如有錯誤請指正 03/26 11:31
vi000246: 因為編譯器以為sum是變數 而不是函式 03/26 11:35
vi000246: 才會說float object 不可被呼叫 03/26 11:36
vi000246: 解決方法同一樓 03/26 11:36
hl4: sum()是built-in function 換個名字吧 03/26 12:12
coeric: function改成my_sum吧... 03/26 12:43
VincentG: 已經照各位的說明改了,但是問題變成怎麼輸入數字都會 03/26 15:13
VincentG: 算出1,這次又是甚麼問題呢? 03/26 15:13
VincentG: 剛剛弄懂了,謝謝各位! 03/26 15:16