python中的+=语句的语法结构是什么



我今天在python中发现了一些东西。但还没有找到一个明确的解释。

在python中,这似乎有效:

variable += a_single_statement

因此,以下陈述是正确的:

variable += another_variable
variable += (another_variable - something_else)

但这样做是不正确的:

variable += a_variable - b_variable

有人能解释为什么会出现这种情况吗?最好是提供一个指向语法结构的文档链接,解释+=运算符的操作数是什么,需要什么表达式以及它们的结构是什么?此外,我上面概述的想法是否正确?

这种行为似乎与我使用的其他编程语言不同,最后一句"语句"会导致语法错误。

编辑:不起作用的代码。可能是空白错误:/

T = input()
counter = 0
# For each word, figure out edit length to palindrome
for _ in range(T):
    counter += 1
    word = raw_input()
    word_len = len(word) #stored for efficiency
    index = 0
    sum_edits = 0
    # Iterate half the word and always compare characters 
    # at equal distance d from the beginning and from 
    # the ending of the word
    while index < word_len/2.0:
        sum_edits += max(ord(word[index]), ord(word[word_len-index-1])) -
                min(ord(word[index]), ord(word[word_len - index - 1]))
        index += 1
    print sum_edits

如果你只能将字母"向下"改为"a",这是一种检测将一个单词变成回文需要多少次编辑的代码。

这是否意味着,如果很明显"expression"无论如何都必须继续,你就不能任意打断python代码中的一行?或者,如果代码行被圆括号包围,你只能将它们分解吗?对不起,我对python很陌生。

它与+=无关。只是Python不允许您将语句拆分为多行,除非有一个打开的({[,或者除非您使用执行行延续。很明显,这两行应该是一个语句,但当你有这样的语句时

a = loooooooooooooooooooooooooooooong_thiiiiiiiiiiiiiiiiiiiiiiiing
  + ooooooooooooootheeeeeeeeeeeeer_thiiiiiiiiiiiiiiiiiiiing

这是一句话还是两句话?如果您允许

a = loooooooooooooooooooooooooooooong_thiiiiiiiiiiiiiiiiiiiiiiiing +
    ooooooooooooootheeeeeeeeeeeeer_thiiiiiiiiiiiiiiiiiiiing

如果是一个语句,那么在第二行使用+运算符的任何一种解释都是令人困惑和容易出错的。Javascript试图允许这种事情,它的分号插入会导致各种问题。

如果您还没有在括号或大括号内,通常建议使用括号。

最新更新