python缩进,语法错误:无效语法

python缩进,语法错误:无效语法,python,Python,请问我的python代码有什么问题,它总是报告文件lake.py,第28行SyntaxError:invalid syntax`。我想知道,是括号吗?或者是什么原因导致了错误,我将非常感谢您的帮助谢谢 def count(m, n): if(n < m): temp = n n = m m = temp return m * (m + 1) * (2 * m + 1) / 6 + (n - m) * m * (m + 1)

请问我的python代码有什么问题,它总是报告文件lake.py,第28行SyntaxError:invalid syntax`。我想知道,是括号吗?或者是什么原因导致了错误,我将非常感谢您的帮助谢谢

def count(m, n):
    if(n < m):
        temp = n
        n = m
        m = temp

    return m * (m + 1) * (2 * m + 1) / 6 + (n - m) * m * (m + 1) / 2


arr = []
arr2 = []

foo = 100
n = foo
if (n == 1):
    print('1')
    print('1 1')
else:
    for m in range(n):
        n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m

        if (count(m, n) == foo and m <= n):
            arr.append(''+str(int(m))+' ' + str(int(n))+'')
            if(m != n):
                arr2.append(''+str(int(n)+' ' + str(int(m)+'')


    arr = arr + arr2
    arrLength = len(arr)
    print(arrLength)

    for g in range(arrLength):
        print(arr[g])

您的括号似乎不合适

arr2.追加+strintn+“”+strintm+

应该是

arr2.第25行中的append+strintn+''+strintm+

将'arr2.append+strintn+''+strintm+'更改为arr2.append+strintn+''+strintm+'+

注意:运行代码后,我看到一个错误

 n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m

ZeroDivisionError: division by zero
这是因为在第13行中使用foo=100,然后在rangen中的m之后使用n=foo:循环将以0开始

所以m现在是零!而且

n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m
您的程序将抛出异常

因此,要修复此部件,您可以将rangen中的m改为:


发布的代码中似乎没有第34行。arr2.append+strintn+''+strintm+有五个左括号,三个右括号。很抱歉,文件lake.py,第28行将更新代码。此代码中没有一个是python。你不需要一个临时变量来交换,也不应该在一个范围内迭代。总的来说是的,但实际上不是!它应该更改为arr2.append+strintn+''+strintm+,因为arr2.append+strintn+''+strintm+将获得TypeError TypeError:不支持+:'int'和'str'的操作数类型
 for m in range(1 ,n):