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



请问我的python代码有什么问题,它总是报告文件"lake.py",第28行语法错误:语法无效"。我想知道,是括号吗?或者可能导致错误的原因,我将不胜感激任何帮助,谢谢

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.append(''+str(int(n)+' ' + str(int(m)+'')

应该是

arr2.append(''+str(int(n))+' ' + str(int(m))+'')

25行将'arr2.append(''+str(int(n)+' ' + str(int(m)+'')'更改为arr2.append(''+str(int(n)) +' ' + str(int(m))+'')

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

n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m
ZeroDivisionError: division by zero

这是因为您使用foo =100(在第 13 行中(,然后使用n = foo所以for m in range(n):之后循环将从0

所以 m 现在为零!

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

程序将引发异常

因此,要修复此部分,您可以将for m in range(n):更改为

for m in range(1 ,n):

最新更新