我的操作系统不支持 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)
我尝试定义时遇到的第一个错误是
File "<ipython console>", line 4
==Integer(1):
^
SyntaxError: invalid syntax
在那之后他们堆积如山。在我看来,语法看起来不错。
我在带有 GCC 4.0.1 的 Mac OS 10.5 上。
非常感谢任何帮助。