在Python中适当的if..else语法

时间:2015-06-03 17:33:49

标签: python if-statement indexing operand

在我的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]都不等于index [y] ,在返回此行时会出现语法错误。我尝试过使用else,elif,并且对于非操作数,!=和'不是'。使用"不等于"编写Python语句的正确方法是什么?操作数,以便我没有收到语法错误?

4 个答案:

答案 0 :(得分:3)

正确的语法是

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

请注意else没有任何明确的条件,如果以上条件都不是True,那么它就是全能的。

答案 1 :(得分:2)

只需修复缩进,将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 :(得分: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

通过你给出的例子 - 否则不需要进行比较。

答案 3 :(得分:0)

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

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