我需要将我的 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手动使用和验证脚本参数,而是使用argparsestdlib 中的模块。看一下方法的choices参数add_argument,文档:
选择 - 参数允许值的容器。
看,问题在于你的逻辑,答案总是不是一个或另一个。使用此代码:
if protocol not in ['tcp','udp']:
print "error"
sys.exit()
如果有q = not (a or b), 要将其更改为使用not aand not b,则需要更改运算符:q = (not a) and (not b)
在您的情况下,ais protocol == "tcp",so protocol != "tcp"is not a,同样适用于"udp", 和b。