在 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范围内的局部副本,修改它们不会影响任何全局变量。