我需要将我的 2 命令行参数与它是否不等于"tcp"
或进行比较"udp"
。我知道您可以使用 or 语句,==
但我无法!=
在语句中适应它。
protocol = sys.argv[2]
if protocol != "tcp" or protocol != "udp":
print" error"
sys.exit()
我需要将我的 2 命令行参数与它是否不等于"tcp"
或进行比较"udp"
。我知道您可以使用 or 语句,==
但我无法!=
在语句中适应它。
protocol = sys.argv[2]
if protocol != "tcp" or protocol != "udp":
print" error"
sys.exit()
怎么用in
?
if protocol not in ("tcp", "udp"):
print" error"
sys.exit()
仅供参考,不要sys.argv
手动使用和验证脚本参数,而是使用argparse
stdlib 中的模块。看一下方法的choices
参数add_argument
,文档:
选择 - 参数允许值的容器。
看,问题在于你的逻辑,答案总是不是一个或另一个。使用此代码:
if protocol not in ['tcp','udp']:
print "error"
sys.exit()
如果有q = not (a or b)
, 要将其更改为使用not a
and not b
,则需要更改运算符:q = (not a) and (not b)
在您的情况下,a
is protocol == "tcp"
,so protocol != "tcp"
is not a
,同样适用于"udp"
, 和b
。