擅长:python、mysql、java
<p>仅供参考,您的代码非常(非常非常)不是惯用的Python——它的编写更像C</p>
<p>这里有一个重写,它更像Python通常编写的。在</p>
<pre><code>square = [[1,2,3,4],[4,3,1,4],[3,1,2,4],[2,4,4,3]]
transpose = lambda i: zip(*i)
def is_magic(square):
n = len(square)
s = n*(n+1)/2
return all(sum(row) == s for row in square) and \
all(sum(col) == s for col in transpose(square))
</code></pre>
<p>您可能希望研究一下<code>numpy</code>,这是一个用于处理矩阵的Python模块。有了它:</p>
^{pr2}$