if 块中的语句后出现意外标记“<newline>”

Unexpected token '<newline>' after a statement in an if block

我是 Python 的新手,可以在下面的代码中使用一些帮助

def find_letter_in_alphabet (letter):
    i = 0
    for current_letter in range(len(alphabet)):
        if letter != current_letter : i++
    return I

我正在使用 Visual Studio 2017 和随附的 Python 工具。我得到了错误 Unexpected token '<newline>' 之后 if letter != current_letter : i++

我习惯用 C# 编写,所以 python 对我来说是一个很大的改变。

您需要缩进 if 的正文。此外,您应该将 I 更改为 i 并将 i++ 更改为 i += 1 因为 Python 没有 ++ 运算符:

def find_letter_in_alphabet(letter):
    i = 0
    for current_letter in range(len(alphabet)):
        if letter != current_letter:
            i += 1
    return i

在 Python 中,空格对语法很重要,这与 C# 不同。您必须添加换行符并缩进 Python 中的每个块(如果该块不止一个语句)。

问题是i++。在 Python 中没有 ++。 您可以添加一个并将其分配给同一个变量。

i = i + 1

或者更像 pythonic 的方式:

i += 1

您可以像这样在一行中执行 if:

if letter != current_letter: i += 1

但是如果在:之后换行(相应缩进),代码会更简单:

if letter != current_letter: 
   i += 1

此外:请注意返回的是 I(大写字母)而不是 i