[英]compare a command line argument with or statment to different strings python
我需要將我的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
和手動驗證腳本參數,而是使用stdlib中的argparse
模塊。 看看add_argument
方法docs的 choices
參數:
選擇-一個參數允許值的容器。
瞧,問題出在您的邏輯上,答案永遠不會是一個或另一個。 使用此代碼:
if protocol not in ['tcp','udp']:
print "error"
sys.exit()
這就是德摩根定律。
如果您擁有q = not (a or b)
,要將其更改為not a
和not b
,則需要更改運算符: q = (not a) and (not b)
在您的情況下, a
是protocol == "tcp"
,因此protocol != "tcp"
not a
,類似地對於"udp"
和b
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.