この質問には2つの質問があります。
- whileループの条件に関連する特定の条件優先ルールのセットはありますか?
- 2つの満たされた条件(つまり、condition_xまたはcondition_y)のいずれかを取得してループを終了するにはどうすればよいですか?
詳細:
Pythonの初心者として、特定の条件が他の条件よりも優先されるwhileループの状況に遭遇しています。
私は作ろうとしています:
- 必要な2つの値のいずれか、つまり「y」または「n」
- ただし、「n」が選択されている場合は、値「ok」を許可するカスタムプロンプトを返します。
- ステップ1の「y」またはステップ3の「ok」のいずれかの入力がループを終了するようにします。
何が起こっているのかというと、「n」を入力すると、最初の条件が優先され、ステートメントが返されます。
please enter 'y' or 'n'
私がそれを返したいとき:
oh come on, enter 'ok'
コード:
(2つbreak
の'の使用がおそらく間違っていることを認識しています-ループを終了するために'y'または'ok'のいずれかを取得する方法を理解できませんでした)
while True:
user_input = raw_input('question? (y/n)')
my_string = 'here is a string '
if len(user_input) == 0:
print 'question? (y/n)'
elif user_input is not 'y' or 'n':
print 'please enter \'y\' or \'n\''
elif user_input is 'n':
print 'oh come on, enter \'ok\''
elif user_input is 'ok':
print my_string + ', ' \
.join(list_var[:-1]), list_var[-1] + '?'
break
else:
print my_string + ', ' \
.join(list_var[:-1]), list_var[-1] + '?'
break