if 语句不分隔内容
if statement not separating content
查看这段代码:
exclude = ["BURSAR", "SHOP"]
for name in exclude:
if name in machineName: # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
else:
command = subprocess.Popen( commands here...)
它的工作是排除任何名称中包含某些单词的机器。
目前,如果我将两台机器传递给脚本,其中一台名为 'BURSAR3'(例如),它将记录应该排除的事实,并运行 inputText 以显示该事实.不幸的是,它还会在不应该的情况下继续将名称传递给下面的命令。我什至可以用 'if name not in exclude:' 替换 'else:',它仍然会以同样的方式失败!
我做错了什么?看起来应该这么简单...
谢谢,
克里斯。
p.s。抱歉,如果标题是垃圾 - 我想不出如何更好地定义它...
在 for
:
之后使用可选的 else
exclude = ["BURSAR", "SHOP"]
for name in exclude:
if name in machineName: # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
break
else:
command = subprocess.Popen( commands here...)
else
只有在 for 循环自然完成而没有遇到 break
时才会执行。因此,如果黑名单中的 none 个单词出现在机器名称中,则执行 else 块。
当然,还有更简单的方法:
exclude = ["BURSAR", "SHOP"]
if any((name in machineName for name in exclude)): # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
else:
command = subprocess.Popen( commands here...)
查看这段代码:
exclude = ["BURSAR", "SHOP"]
for name in exclude:
if name in machineName: # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
else:
command = subprocess.Popen( commands here...)
它的工作是排除任何名称中包含某些单词的机器。
目前,如果我将两台机器传递给脚本,其中一台名为 'BURSAR3'(例如),它将记录应该排除的事实,并运行 inputText 以显示该事实.不幸的是,它还会在不应该的情况下继续将名称传递给下面的命令。我什至可以用 'if name not in exclude:' 替换 'else:',它仍然会以同样的方式失败!
我做错了什么?看起来应该这么简单...
谢谢, 克里斯。 p.s。抱歉,如果标题是垃圾 - 我想不出如何更好地定义它...
在 for
:
else
exclude = ["BURSAR", "SHOP"]
for name in exclude:
if name in machineName: # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
break
else:
command = subprocess.Popen( commands here...)
else
只有在 for 循环自然完成而没有遇到 break
时才会执行。因此,如果黑名单中的 none 个单词出现在机器名称中,则执行 else 块。
当然,还有更简单的方法:
exclude = ["BURSAR", "SHOP"]
if any((name in machineName for name in exclude)): # machineName is defined further up in the script.
inputText.insert("end", machineName + " has been excluded.\n")
else:
command = subprocess.Popen( commands here...)