【Python】if-elif-else文とwhileループでユーザー入力に応答する方法
この問題は、if-elif-else文を使うことで解決できます。さらに、「有効な選択肢が入力されるまで繰り返し尋ねる」という動作を実現したい場合は、whileループを併用します。有効な選択肢が入力された時点でbreak文によってループを抜け、無効な入力の場合は何度でも入力を促し直す仕組みです。
また、入力値は整数として扱う必要があります。input()関数は常に文字列を返すため、int()メソッドを使って入力値を整数型に変換(型キャスト)してから比較を行いましょう。
コード例
以下のコードは、上記のポイントをすべて反映した実装例です。
print("Come-on in. Need help with any bags?")
while True:
# 有効な選択肢が入力されるまでループを続ける
bag = int(input("(1)Yes (2)No Thanks (3)I'll get 'em later\nTYPE THE NUMBER OF YOUR RESPONSE: "))
if bag == 1:
print("You have chosen YES. We'll help with bags")
break # 選択肢が有効なのでループを終了
elif bag == 2:
print("Ok you don't want any help.")
break
elif bag == 3:
print("Tell us, when you want the help")
break
else:
print("Invalid Choice, Please select number from 1 to 3")実行結果の例
無効な数値を入力した場合は再び入力を求められ、有効な数値を入力すると対応するメッセージが表示されてプログラムが終了します。
Come-on in. Need help with any bags? (1)Yes (2)No Thanks (3)I'll get 'em later TYPE THE NUMBER OF YOUR RESPONSE: 5 Invalid Choice, Please select number from 1 to 3 (1)Yes (2)No Thanks (3)I'll get 'em later TYPE THE NUMBER OF YOUR RESPONSE: 1 You have chosen YES. We'll help with bags
コードのポイント解説
- while True: — 条件を常に真にすることで、break文が実行されるまでループが継続されます。
- int(input(...)) — input()で受け取った文字列をint()で整数に変換し、数値として比較できるようにしています。
- if / elif / else — 入力された数値に応じて処理を分岐します。1〜3以外の値が入力された場合はエラーメッセージを表示し、ループが継続されます。
- break — 有効な選択肢が入力されたときだけループを抜け、後続の処理へ進みます。
このパターンは、メニュー形式の対話プログラムやCLIツールにおける入力バリデーションなど、さまざまな場面で応用できるPythonの基本的なテクニックです。
-
Pythonを使ってLinuxターミナルでテキストを装飾表示する方法
Linuxターミナルにおけるテキスト装飾の基本 本記事では、Pythonを使ってLinuxターミナル上に整形(装飾)されたテキストを出力する方法を解説します。フォーマット機能を活用すれば、文字色やスタイルだけでなく、点滅といった特殊な視覚効果も自由に付与できます。 Linuxターミナルは、ANSIエスケープシーケンスと呼ばれる制御コードに対応しており、これによって文字装飾やカラー表示などが実現できます。仕組みとしては、テキストの中に特定のバイト列を埋め込み、ターミナルがそれを解釈するタイミングで指定した書式が反映されるというものです。 ANSIエスケープシーケンスの基本構文は次のとおりです。
-
PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法
はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c