Python 根据收到的参数执行操作

Python 根据收到的参数执行操作,python,Python,我正在编写一个api,它接受两个参数“a”和“b”。在收到参数后,它会检查它们是否存在,并根据收到的参数执行一些操作。下面是一些psudo代码 args = get.parameters if "a" in args: print "x" # execute "x" if "b" in args: print "y" # execute "y" if both exists: print "x" # execute "x" 最好的方法是什么?根据您提供的有限信息,我首

我正在编写一个api,它接受两个参数“a”和“b”。在收到参数后,它会检查它们是否存在,并根据收到的参数执行一些操作。下面是一些psudo代码

args = get.parameters

if "a" in args:
    print "x" # execute "x"
if "b" in args:
    print "y" # execute "y"
if both exists:
    print "x" # execute "x"

最好的方法是什么?

根据您提供的有限信息,我首先检查
a
b
是否存在。然后出现
a
not
b
b
not
a
。这样你就不会错过任何条件

if 'a' in args and 'b' in args:
    print "x" # execute "x"
elif "a" in args:
    print "x" # execute "x"
elif "b" in args:
    print "y" # execute "y"
else:
    print 'ERROR need "a" or "b"'
import sys
args = sys.argv;
if len(args) > 1:
    args = args[1:]
    if "a" in args and "b" in args: print "x"
    elif "a" in args: print "x"
    elif "b" in args: print "y"

我也不明白为什么不使用
if elif else
而不是多个
if
。这些应该是或条件

根据评论中提出的要求,我会这样做:

if 'a' in args and 'b' in args:
    print "x" # execute "x"
elif "a" in args:
    print "x" # execute "x"
elif "b" in args:
    print "y" # execute "y"
else:
    print 'ERROR need "a" or "b"'
import sys
args = sys.argv;
if len(args) > 1:
    args = args[1:]
    if "a" in args and "b" in args: print "x"
    elif "a" in args: print "x"
    elif "b" in args: print "y"
if "a" in args:
    print "x"
elif "b" in args:
    print "y"
else:
    raise ValueError("must specify at least a or b")

检查args中的“a”和args中的“b”没有任何意义,因为要采取的操作与只有
“a”
的情况相同。注意
elif
,它确保只有在第一次检查失败时才执行第二次检查。

如果不知道可能的条件是什么,这是不可能回答的。如果args中的
“b”
,则必须始终执行
打印“y”
,或者仅当
“a”不在args中时执行
?@larsmans的可能条件为。我要么接受“a”或“b”,要么两者都可以。但如果只收到“a”,则执行一些操作,比如说“x”,如果只收到“b”,则执行一些操作“y”,但如果两个都收到,则执行与只收到“a”时相同的操作。
上的
s之后的条件如果
s有点多余,您已经检查了它们是否都存在,为什么在每种情况下都需要再次检查?