2014-10-09 2 views
-3

나는 처음에 사용자 입력이 필요한 코드가이 입력을 기반으로실행 코드 (Python3, 팬더)

var = input("Do you want A (Type: A) or an B (Type: B)?") 

, 그것은 코드의 특정 세트를 실행됩니다. 나는 이것을 다음과 같이 사용하는 방법을 안다 :

if var = 'A': 
    run code... 

elif: var = 'B': 
    run other code... 

else: 
    print ('Incorrect Input') 

내 문제는 실제로 서로 다른 두 개의 매우 긴 코드 세트를 하나로 합친 것이다. 위의 메소드의 문제점은 파이썬 "if"구문의 공백 제약 때문입니다. 수천 줄의 코드를 직접 들여 쓰고 싶지는 않습니다. 모든 것을 들여 쓰기 할 필요가없는 사용자 입력을 기반으로 코드를 실행하는 것과 동일한 개념을 달성하는 더 좋은 방법이 있습니까?

+0

함수를 호출 하시겠습니까? –

+0

왜 모든 음수 downvotes ... – user3682157

+1

난 당신이 뭘했는지 분명하지 않은 것 같아요, http://stackoverflow.com/help/how-to-ask를 참조하십시오. 나는 대답 (내가 "함수 호출"에 대해 언급했을 때 의미했던 것)을 좋아한다. –

답변

1

입력에 따라 함수를 실행할 수 있습니다.

def func_a(): 
    #Do stuff here... 
    return 

def func_b(): 
    #Do stuff here... 
    return 

type = input("A/B: ").lower() 

if type == "a": 
    func_a() 
elif type == "b": 
    func_b() 
else: 
    print("Invalid option.") 

또 다른 방법은 os.system()을 사용하여 스크립트를 호출하는 것입니다.

귀하의 질문을 이해한다면 바로 사전을 사용하여 사용자 입력을 기반으로 한 기능을 실행하는 방법입니다. 이 방법으로 백 if-else 문을 입력 할 필요가 없습니다.

types = {"A": func_a, 
     "B": func_b} 

choice = input("A/B: ") 

types[choice]()