Error:- '_io.TextIOWrapper' object is not callable
Error:- '_io.TextIOWrapper' object is not callable
我写了一个代码,用二分法求方程的根。
我试图在循环的每次迭代中附加我的循环索引和两个解决方案之间的差异,但我收到问题标题中提到的错误。
此外,我看到了类似问题的答案,其中人们已经建议使用 write 方法而不是直接调用它,但是,这只会给我一个错误提示
'builtin_function_or_method' object has no attribute 'write'
我的代码:-
#Function to solve by bisection method
def bisection(f,a,b,fileName,tol = 10**-6):
#making sure a is left of b
if(a>b):
temp = b
b = a
a = temp
#Bracketing the roots
a,b = bracketChecker(f,a,b)
if((a,b) == False): return None
#Checking if either of a or b is a root
if(f(a)*f(b) == 0):
if(f(a)==0):
return a
else: return b
else:
i = 0
c = 0
while(abs(a-b) > tol and i<200):
c_old = c
c = (a+b)/2.0
abserr = c - c_old
if (abs(f(c)) < tol):
return c
if (f(a)*f(c)<0):
b = c
else: a = c
#Appending the data
with open(fileName, 'a') as f:
print(i,abserr, file=f) #The error is occuring here
i += 1
return (a+b)/2.0
它工作正常,问题的发生只是因为我将文件命名为 f,这与我在我的函数中使用的变量相同。因此,错误...
感谢@mibu 指出这一点
我写了一个代码,用二分法求方程的根。
我试图在循环的每次迭代中附加我的循环索引和两个解决方案之间的差异,但我收到问题标题中提到的错误。
此外,我看到了类似问题的答案,其中人们已经建议使用 write 方法而不是直接调用它,但是,这只会给我一个错误提示
'builtin_function_or_method' object has no attribute 'write'
我的代码:-
#Function to solve by bisection method
def bisection(f,a,b,fileName,tol = 10**-6):
#making sure a is left of b
if(a>b):
temp = b
b = a
a = temp
#Bracketing the roots
a,b = bracketChecker(f,a,b)
if((a,b) == False): return None
#Checking if either of a or b is a root
if(f(a)*f(b) == 0):
if(f(a)==0):
return a
else: return b
else:
i = 0
c = 0
while(abs(a-b) > tol and i<200):
c_old = c
c = (a+b)/2.0
abserr = c - c_old
if (abs(f(c)) < tol):
return c
if (f(a)*f(c)<0):
b = c
else: a = c
#Appending the data
with open(fileName, 'a') as f:
print(i,abserr, file=f) #The error is occuring here
i += 1
return (a+b)/2.0
它工作正常,问题的发生只是因为我将文件命名为 f,这与我在我的函数中使用的变量相同。因此,错误... 感谢@mibu 指出这一点