【问题标题】:python indentation, SyntaxError: invalid syntax [duplicate]python缩进,SyntaxError:无效语法[重复]
【发布时间】:2018-09-29 03:32:16
【问题描述】:

请问我的 python 代码有什么问题,它总是报告 File "lake.py", line 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])

【问题讨论】:

  • 发布的代码中似乎没有第 34 行。
  • arr2.append(''+str(int(n)+' ' + str(int(m)+'') 有五个左括号和三个右括号。
  • 对不起,它是文件“lake.py”,第 28 行,将更新代码
  • 这段代码完全不是 Pythonic。你不需要一个临时变量来交换,你不应该迭代一个范围。

标签: python


【解决方案1】:

您的括号似乎不合适。

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

应该是

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

【讨论】:

  • 总的来说是,但真的不是!它应该更改为arr2.append(''+str(int(n)) +' ' + str(int(m))+''),因为arr2.append(''+str(int(n)+' ' + str(int(m)+''))) 将得到 TypeError TypeError: unsupported operand type(s) for +: 'int' and 'str'
【解决方案2】:

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):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多