2013-05-13 3 views
-2

두 매개 변수 "a"& "b"를 사용할 수있는 API를 작성하고 있습니다. 매개 변수를받은 후, 매개 변수가 있는지 여부를 확인하고 매개 변수를 기반으로 일부 동작을 수행합니다. 다음은 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" 

어떻게해야할까요?

+0

가능한 조건이 무엇인지 모른 채 대답하는 것은 불가능합니다. ''args'에''b ''가 있으면,''print "y"'항상 실행되어야합니다. –

+0

@larsmans 가능한 조건은 다음과 같습니다. 나는 "a"또는 "b"를 받거나 둘 다받을 수 있습니다. 그러나 "a"만 수신 된 경우 "x"라고 말하면서 "b"만 수신하면 몇 가지 조치 "y"를 수행하지만 두 가지 모두 수신되면 " a "를 받았다. – hjelpmig

답변

1

주석 철자 요구 사항에 행동이 내가 할 것 인 것이다 :

수행 할 동작 년부터 "a" in args and "b" in args 검사를하고 아무 문제가 없다
if "a" in args: 
    print "x" 
elif "b" in args: 
    print "y" 
else: 
    raise ValueError("must specify at least a or b") 

이 동일하다 "a" 만있는 경우입니다. elif에 유의하십시오. 그러면 첫 번째 검사가 실패한 경우에만 두 번째 검사가 수행됩니다.

0

제공하신 정보가 한정되어 있으므로 먼저 ab의 존재를 먼저 확인해야합니다. a이 아닌 b 또는 b이 아닌 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"' 

또한 여러 개의 ifs보다는 if-elif-else를 사용하지 이유를 이해 해달라고. 이것들은 - 또는 조건이어야합니다.

+2

'elif's에서'and's 다음에 나오는 조건은 다소 중복되어 있습니다. 둘 다 존재하는지, 이미 모든 조건에서 * 다시 확인해야하는 이유는 무엇입니까? – asermax

0
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" 
관련 문제