2016-11-18 6 views
1

条件が満たされていれば、特定の変数を無視するような割り当てがあります。基本的には、ユーザーに入力を求めて、有効な選択肢を彼に伝えますが、もともと有効な選択肢はもはや有効ではなくなりました。私は、入力が有効な選択肢がある場合、私は最初にすべての力 'は有効な選択肢のと、私はその選択のカウンターに1を追加しますこれにより、このtrueの場合、今からPythonで変数を無視してください

while True: 
    choice = input('You can choose between: ', Choice1, Choice2, Choice3) 
    if choice == Choice1: 
     Choice1Counter +=1 
     break 
    elif choice == Choice2: 
     Choice2Counter +=1 
     break 
    elif choice == Choice3: 
     Choice2Counter +=1 
     break 
    else: 
     choice = input('You can choose between: ', Choice1, Choice2, Choice3) 
     continue 

のような何かを考えました。カウンターが限界を打つべきである私は、これはその後、基本的に

choice = Input('You can choose between: ', Choice1, Choice2, Choice3) Choice1が(私の心の中で)このようなビットを見てしまうプログラムによって無視されることを意味する必要があり、この

if Choice1Chounter == 4: 
    #ignore Choice 1 for the rest of the Programm or until Choice1 is reset 

ようなものをやって考えました

それはChoice1Counterが

You can choose between: Choice2 Choice3

イスト制限に達する後にプログラムを実行するときに続いて、基本的に「印刷」する必要があることで

私は82の有効な入力を持っていて、本当にすべての82を定義することはできません!それらの組み合わせがあるので、私はこれについて考えましたが、残りのプログラムの変数を無視するコマンドは見つかりませんでした。

+0

'= [、偽偽、真]無視'して、あなたはどの要素の使用を決定するためにこれを使用することができ、すなわち無視した選択を制御するために(S) 'トゥルー/ false'をいくつかの変数を使用します。 – furas

+0

ところで、あなたはリスト 'choice [0]'、 'choice [1]、etc'と' choice_counter [0] '、' choice_counter [1] 'などを使うことができます。この要素のあるもの – furas

答えて

4

これには別の変数を使用するのではなく、辞書と現在有効なキーのリストを使用してください。

choices = ["Choice1", "Choice2", "Choice3", "Choice4"] 
counters = dict((choice, 0) for choice in choices) 

while choices: # exit when no choices left 
    choice = raw_input("Choose from %s > " % " ".join(choices)) # input in Py3 
    if choice in choices: 
     counters[choice] += 1 
     if counters[choice] == 4: 
      choices.remove(choice) 
    else: 
     print("That choice is not valid. Try again") 
+0

Thanlあなたの助けを大変ありがとう。私はちょうどそれを試して、それは完全に動作します。 – Ron

関連する問題