2016-06-01 9 views
-1

私はPythonとプログラミングの新機能ですから、 "noob question"の場合は申し訳ありません。とにかく、ifループなしで、Pythonで複数選択の間で選択を尋ねることは可能ですか?ユーザが有限リストから入力を選択する方法を教えてください。

愚か例:

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

、ユーザーが選択のみを選択することができます。

+0

'if'がループではありません。なぜ 'if'を使いたいのですか? –

+0

あなたが「はい」または「いいえ」と書かなければ、何も表示されず、プログラムは2人のうちの1人を書いて先に進むのを待つだけです。 –

+0

あなたはそれを行うためにループが必要です – Keatinge

答えて

2

あなたが定期的にこれを実行する必要がある場合は、そこにあるあなたが簡単に、より良いユーザーエクスペリエンスを達成するのを助けることがあり、この目的のための便利なライブラリ:inquirer

免責事項:私の知る限りでは、それはいくつかのハッキングなしでWindows上で動作しません。

あなたがピップでInquirerにインストールすることができます。

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

あなたが必要と思われるものを達成するための1つの方法は、ループを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

2要素の場合はほとんど違いはありませんが、要素の数が増えるにつれてセットがはるかに高速になります。この理由は '__contains__'メソッドの基礎となる実装です。リストの場合、一致する要素が見つかるまで、またはすべての要素が使い果たされるまで各要素を繰り返します。集合の場合、要素の数に関係なく、ほぼ一定の実行時間を与えるためにハッシュ技法が使用される。 – holdenweb

関連する問題