2016-06-01 3 views
-1

저는 파이썬과 프로그래밍에있어서 아주 새로운 것이므로 "멍청한 질문"이라면 유감입니다. 어쨌든, 선택 루프를 사용하지 않고 파이썬에서 객관식 선택을 할 수 있습니까?사용자가 유한 목록에서 입력을 선택하는 방법은 무엇입니까?

바보 예 :

print "Do you want to enter the door" 
raw_input ("Yes or not") 

그리고 사용자는 선택 중에서 선택할 수 있습니다.

+0

'if' 루프 아니다. 왜'if'를 사용하고 싶지 않으십니까? –

+0

"예"또는 "아니오"라고 쓰지 않으면 아무 것도 나타나지 않을 것입니다. 프로그램은 두 가지 중 하나를 쓰고 진행하지 않을 것이라고 기다립니다. –

+0

당신은 루프가 필요합니다. – Keatinge

답변

2

정기적으로이 작업을 수행해야하는 경우가 쉽게 더 나은 사용자 경험을 달성하는 데 도움이 될 수 있습니다 이러한 목적을위한 편리한 라이브러리 : inquirer

면책 조항 : 내가 아는 한, 해킹없이 Windows에서는 작동하지 않습니다.

pip install inquirer 

예 1 :

당신은 핍과 지망생을 설치할 수 있습니다 지망생의 기능을

하나는 사용자가 키보드 화살표 키를 사용하여 목록에서 선택할 수 있도록하는 것입니다 다중 선택, 필요하지 않은 그들에게 대답을 쓴다. 이렇게하면 콘솔 응용 프로그램에 더 나은 UX를 얻을 수 있습니다.

import inquirer 
questions = [ 
    inquirer.List('size', 
       message="What size do you need?", 
       choices=['Jumbo', 'Large', 'Standard', 'Medium', 'Small', 'Micro'], 
      ), 
] 
answers = inquirer.prompt(questions) 
print answers["size"] 

Inquirer example

예 2 : 여기

documentation에서 가져온 예는 예/아니오 질문 : 같은 당신과 같은 "예/아니오"질문

, 당신도 문의자의 확인을 사용할 수 있습니다 :

import inquirer 
confirm = { 
    inquirer.Confirm('confirmed', 
        message="Do you want to enter the door ?" , 
        default=True), 
} 
confirmation = inquirer.prompt(confirm) 
print confirmation["confirmed"] 

Yes no questions with Inquirer

기타 유용한 링크 :

Inquirer's Github repo

+0

오, 그건 정확히 내가 의미했던 것입니다. Windows에서 작동하도록 할 방법이 없습니까? –

+0

아마 가능할 수도 있지만 지금까지는 Windows에서 작동하도록 관리하지 않았습니다. 내가 그것을 사용할 때 창문에서 작업 할 필요가 없었기 때문에 나는별로 신경 쓰지 않았다 ... – Khopa

2

당신이 필요로하는 것을 달성하는 한 가지 가능한 방법은 while 루프입니다.

print "Do you want to enter the door" 
response = None 
while response not in {"yes", "no"}: 
    response = raw_input("Please enter yes or no: ") 
# Now response is either "yes" or "no" 
+0

궁금한 점이 있는데,'{ "yes", "no"}'리스트를 사용하는 것보다 더 빠르고/더 빠르게 옵션을 사용하고 있습니까? – Keatinge

+1

두 요소로 된 경우에는 차이가 거의 없지만 요소의 수가 올라감에 따라 훨씬 빠르게됩니다. 그 이유는'__contains__' 메쏘드의 기본적인 구현입니다.이 메쏘드는 매치를 찾거나 모든 엘리먼트를 다 쓸 때까지리스트를 위해 각 엘리먼트를 반복합니다.집합의 경우 해싱 기술을 사용하여 요소의 수에 관계없이 거의 일정한 실행 시간을 제공합니다. – holdenweb