2016-05-09 54 views
0
a = 3 

def f(x): 
    x = (x**3-4*x)/(3(x**2)-4) 
    return x 

while True: 
    print(a) 
    a = f(a) 

我在這裏得到一個類型錯誤,我不知道爲什麼。我試圖運行這個遞歸函數,有沒有辦法解決這個問題?TypeError:'int'對象不能被遞歸函數調用

+1

這不會有什麼與你的問題,但:有在你的代碼沒有遞歸。如果'f'自己調用,遞歸會是。 – zwol

回答

5

括號後需要一個*運算符。在這種情況下,乘法只是隱含在數學符號中,在Python中它看起來像是在試圖調用一個函數。

3(x**2) 

因此,這將是

3*(x**2) 

例如

>>> 3(5*2) 
Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    3(5*2) 
TypeError: 'int' object is not callable 
>>> 3*(5*2) 
30