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
在我的 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