Plot 该函数没有';t返回列表,Sage不返回';我没画出来

Plot 该函数没有';t返回列表,Sage不返回';我没画出来,plot,point,sage,Plot,Point,Sage,我得到了函数f(x,y),我想对它进行多次迭代并绘制结果点。我所做的是: def orbita(p,n): a = [p] for i in range(n-1): p = f(p[0],p[1]) a.append(p) print a 当应用于点p=(1,2)并要求n=5迭代时,此函数返回以下内容: [(1, 2), (2, 5/2), (5/2, 29/20), (29/20, 1241/1450), (1241/1450, 728

我得到了函数
f(x,y)
,我想对它进行多次迭代并绘制结果点。我所做的是:

def orbita(p,n):
    a = [p]
    for i in range(n-1):
        p = f(p[0],p[1])
        a.append(p)
    print a
当应用于点
p=(1,2)
并要求
n=5
迭代时,此函数返回以下内容:

[(1, 2), (2, 5/2), (5/2, 29/20), (29/20, 1241/1450), (1241/1450, 7285162/5218405)]
这是正确的。然而,当我试图通过
点(orbita((1,2,5))
绘制这个点列表时,我得到的只是一个空图

起初我认为这是一个问题,因为
point()
绘制了“一个点(作为元组)、一个点列表、一个复数或一个复数列表”,引用自,因为我选中了
type(orbita((1,2),5))
并得到了
NoneType
。然而,当我试图通过
L=orbit((1,2),5)将列表分配给变量时,我的变量是空的,因为键入
L
不会返回任何结果,所以我不确定这是否是问题所在。如果我复制列表并写下:

point([(1, 2), (2, 5/2), (5/2, 29/20), (29/20, 1241/1450), (1241/1450, 7285162/5218405)])
绘图效果很好,但是我想使用这个函数来绘制至少几百个点,所以我不想每次都复制它们。我对Sage和Python都是新手,所以我真的不知道在任何层面上我做错了什么

如何打印函数的结果,或者如何修改它,以便通过键入
point(orbita(p,n))
获得绘图?

这是您的问题

此函数返回以下内容:

[(1, 2), (2, 5/2), (5/2, 29/20), (29/20, 1241/1450), (1241/1450, 7285162/5218405)]

不,没有。它打印以下内容。正确识别后,它将返回
None
。所以你必须让它返回元组列表。看起来您在Python方面有丰富的经验,可以了解如何做到这一点,因此我不提供详细信息,但如果您仍然有问题,请继续跟进。

(顺便说一下,在本网站上,通常会有一个“最小工作示例”,尽管在本例中,它与
f
是什么并不重要。)现在开始工作,谢谢!很久以前,我使用C语言,我记得,
print
过去比
return
更有用,我想在其他语言中并不总是这样。它通常更有用!只是不一样。事实上,在Python中,返回的对象看起来与该对象的打印表示完全不同——例如,尝试在Sage中创建一个非常大的矩阵;如果没有,请告诉我如何帮助!:)