Python sage 5.0混淆语法错误

Python sage 5.0混淆语法错误,python,sage,Python,Sage,我的操作系统不支持Sage 5.4,所以我现在只能使用5.0。 定义这个函数在python中不注册语法错误,我认为它在Sage 5.4中也不会出错(如果可能的话,我希望得到确认)。我想知道它在5.0中失败的原因 def num_matchings(G): if min(G.degree_sequence())== 0 or G.num_edges()==0: return 0 elif G.num_edges()==1: if G.edges()[

我的操作系统不支持Sage 5.4,所以我现在只能使用5.0。 定义这个函数在python中不注册语法错误,我认为它在Sage 5.4中也不会出错(如果可能的话,我希望得到确认)。我想知道它在5.0中失败的原因

def num_matchings(G):
    if min(G.degree_sequence())== 0 or G.num_edges()==0:
        return 0
    elif G.num_edges()==1:
        if G.edges()[0][2] ==None:
            return 1
        else:
            return G.edges()[0][2]
    else:
        H = copy(G)
        K = copy(G)
        e = G.edges()[0]
        if e[2] ==None:
            w=1
        else:
            w = e[2]
        H.delete_edge(e)
        K.delete_vertices([e[0],e[1]])
        return num_matchings(H) + w*num_matchings(K)
我尝试定义时遇到的第一个错误是

文件“”,第4行
==整数(1):
^
语法错误:无效语法

在那之后他们就开始了。在我看来,语法看起来不错。
我使用的是Mac OS 10.5和GCC4.0.1


非常感谢您的帮助。

[旁白:键入
。删除\u vertives()
]

你的语法本身很好。不过,从错误消息来看,您似乎只是简单地将代码复制并粘贴到了控制台中。这只适用于某些非常简单的情况。你也在使用标签进行缩进,这也会引起其他一系列的麻烦。你真的应该切换到4空间标签

如果要将代码插入实时控制台,可以使用
%paste
(如果可以,可以从剪贴板复制),也可以使用
%cpaste

例如,如果复制并粘贴您的代码,我会得到:

sage: def num_matchings(G):
....:         if min(G.degree_sequence())== 0 or G.num_edges()==0:
....:             return 0
....:     elif G.num_edges()==1:
------------------------------------------------------------
   File "<ipython console>", line 4
     ==Integer(1):
      ^
SyntaxError: invalid syntax

sage:         if G.edges()[0][2] ==None:
....:                 return 1
------------------------------------------------------------
   File "<ipython console>", line 2
SyntaxError: 'return' outside function (<ipython console>, line 2)
sage: %cpaste
Pasting code; enter '--' alone on the line to stop.
:
:def num_matchings(G):
:    if min(G.degree_sequence())== 0 or G.num_edges()==0:
:        return 0

[etc.]

:        K.delete_vertices([e[0],e[1]])
:        return num_matchings(H) + w*num_matchings(K)
:--
sage: num_matchings(graphs.LadderGraph(5))
8