在我的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语句的正确方法是什么?操作数,以便我没有收到语法错误?
答案 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