Python 中正确的 if..else 语法

Proper if..else syntax in Python

在我的 python 代码中,我试图实现一个 if..else 语句。见下文:

     if index[y] == index[x]:
            continue
            else index[y] != index[x]
                indexdn = indexd
                indadd= index[y]-index[x]
                indexdn[:,y]=indexdn[:,y]+ indadd
                index[y,:]=-indexdn[:,y]
                indexdn[y,y]=0

然而,无论我尝试用多少种不同的方式来写 else index[x] is not equal to index[y] 我在 return 这一行。我尝试过使用 else、elif 以及非操作数 != 和 'is not'。使用 "not equal" 操作数编写 Python 语句的正确方法是什么,这样我就不会收到语法错误?

正确的语法是

if condition:
    # stuff
elif other:
    # stuff
elif some_other:
    # stuff
else:
    # stuff

请注意,else 没有得到任何明确的条件,如果上述条件的 none 是 True,它就是包罗万象的。

只需修复缩进,将 else 更改为 elif 并添加缺少的冒号:

if index[y] == index[x]:
    continue
elif index[y] != index[x]: # indentation and colon
    indexdn = indexd
    indadd = index[y] - index[x]
    indexdn[:,y] = indexdn[:,y]+ indadd
    index[y,:] = -indexdn[:,y]
    indexdn[y,y] = 0

我认为您遗漏了 2 件重要的事情 1. 意图和 2. 其他冒号

if index[y] == index[x]:
    continue
else:
    indexdn = indexd
    indadd= index[y]-index[x]
    indexdn[:,y]=indexdn[:,y]+ indadd
    index[y,:]=-indexdn[:,y]
    indexdn[y,y]=0

按照您给出的示例进行操作 - else 中不需要进行比较。

我猜你是在循环中使用它,但如果你不这样做,你应该使用关键字 pass 而不是 continue。

if index[y] == index[x]:
    pass
elif: # indentation and colon
    indexdn = indexd
    indadd = index[y] - index[x]
    indexdn[:, y] = indexdn[:, y] + indadd
    index[y, :] = -indexdn[:, y]
    indexdn[y, y] = 0

但是,如果它不在循环中,您只需要:

if index[y] != index[x]:
    indexdn = indexd
    indadd = index[y] - index[x]
    indexdn[:, y] = indexdn[:, y] + indadd
    index[y, :] = -indexdn[:, y]
    indexdn[y, y] = 0