作者VincentG (暮夜嵐鋒)
看板Python
標題[問題] 程式求救
時間Mon Mar 26 11:26:37 2018
版上的各位前輩大家好
小弟剛剛入門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