在 SAGE 程序中使用变量
Use of variables in SAGE procedure
我正在学习如何编写 SAGE 程序,并且正在查看各种示例。
这是二分法的一个(找到函数的零:
def method_of_bisection(a, b, n, f, x=x):
c, d = a, b
f(x) = f
for i in range(n):
# compute midpoint, then compare
e = (c + d)/2
if (f(c) > 0 and f(e) > 0) or (f(c) < 0 and f(e) < 0):
c=e
elif f(e) == 0:
c=d=e
break
else:
d=e
return (c, d)
我的问题是:为什么我们需要将a、b重命名为c、d?改用有什么问题:
def method_of_bisection(a, b, n, f, x=x):
f(x) = f
for i in range(n):
# compute midpoint, then compare
e = (a+b)/2
if (f(a) > 0 and f(e) > 0) or (f(a) < 0 and f(e) < 0):
a=e
elif f(e) == 0:
a=b=e
break
else:
b=e
return (a,b)
在我正在查看的所有 SAGE 程序示例中都完成了变量的初始重命名,我确信它背后一定有基本的“良好编程”实践,但我不知道它是什么.
你是对的,你不需要将a和b分别重命名为c和d。变量a和b是局部变量-f范围内的局部副本,修改它们不会影响任何全局变量。
我正在学习如何编写 SAGE 程序,并且正在查看各种示例。 这是二分法的一个(找到函数的零:
def method_of_bisection(a, b, n, f, x=x):
c, d = a, b
f(x) = f
for i in range(n):
# compute midpoint, then compare
e = (c + d)/2
if (f(c) > 0 and f(e) > 0) or (f(c) < 0 and f(e) < 0):
c=e
elif f(e) == 0:
c=d=e
break
else:
d=e
return (c, d)
我的问题是:为什么我们需要将a、b重命名为c、d?改用有什么问题:
def method_of_bisection(a, b, n, f, x=x):
f(x) = f
for i in range(n):
# compute midpoint, then compare
e = (a+b)/2
if (f(a) > 0 and f(e) > 0) or (f(a) < 0 and f(e) < 0):
a=e
elif f(e) == 0:
a=b=e
break
else:
b=e
return (a,b)
在我正在查看的所有 SAGE 程序示例中都完成了变量的初始重命名,我确信它背后一定有基本的“良好编程”实践,但我不知道它是什么.
你是对的,你不需要将a和b分别重命名为c和d。变量a和b是局部变量-f范围内的局部副本,修改它们不会影响任何全局变量。