Python でコマンドプロンプトなどの CLI で Yes / No の入力を処理するスクリプト例とその実行結果を紹介します。

※ Python 3.14.0 を使用します。
※プログラムは自己責任でご利用ください。
Python3 のインストール
以下の記事を参照してください。
スクリプト例
以下は、 Y, y, N, n のいずれかを入力されると、Yes または No が入力されたことを表示するスクリプトです。
それ以外の正しくない入力では質問を繰り返します。
実行する場合は、以下のスクリプトを .py ファイルに保存(例:yes_or_no.py)してください。
import sys
while True:
print("Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]")
choice = input().strip().lower()
if choice == "y":
print("Yes が選択されました。")
break
elif choice == "n":
print("No が選択されました。")
break
else:
print("入力が正しくありません。もう一度入力してください。")
print("選択が完了しました。")
スクリプトの説明
スクリプトの構造は、質問を繰り返す While ループがあり、正しい入力がある場合は判定結果を表示した後 break でループから抜けます。
input().strip().lower()
上記のスクリプトは
- input() で、ユーザーの入力した文字列(末尾の改行を除く)を受け取り、
- strip() で、前後の空白文字があった場合にそれを除去し、
- lower() で、アルファベットが大文字の場合は小文字に変換して
入力した文字列を返します。
input()
input(prompt, /)引数 prompt が存在すれば、それが末尾の改行を除いて標準出力に書き出されます。次に、この関数は入力から 1 行を読み込み、文字列に変換して (末尾の改行を除いて) 返します。 EOF が読み込まれたとき、
組み込み関数 — Python 3.14.0 ドキュメント#inputEOFErrorが送出されます。
str.strip(chars=None, /)
文字列の先頭および末尾部分を除去したコピーを返します。引数 chars は除去される文字集合を指定する文字列です。 chars が省略されるか
組み込み型 — Python 3.14.0 ドキュメント#str.stripNoneの場合、空白文字が除去されます。 chars 文字列は接頭語でも接尾語でもなく、そこに含まれる文字の組み合わせ全てがはぎ取られます:
str.lower()
全ての大小文字の区別のある文字 [4] が小文字に変換された、文字列のコピーを返します。
組み込み型 — Python 3.14.0 ドキュメント#str.lower
テスト
コマンドプロンプトで python アプリを呼び出して、作成した .py ファイル(例:yes_or_no.py)を実行します。
Windows11 の場合、エクスプローラで .py ファイルのあるフォルダを開いて、アドレスバーで cmd⏎ と入力すると、そのフォルダをカレントディレクトリにしてコマンドプロンプトが開きます。

python yes_or_no.py
と実行すると、 Yes か No の入力を促すメッセージが表示されます。
何も入力しなかったり A など無関係な文字列のあとにエンターキーを押すと、正しくない入力のため、質問が繰り返されます。
Y, y, N, n の場合は、大文字小文字に関わらず、Yes または No がされたと判定した print 文が出力されて質問のループから抜けます。

Microsoft Windows [Version 10.0.26200.7171]
(c) Microsoft Corporation. All rights reserved.
G:\Dev\Py\Download>python yes_or_no.py
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
入力が正しくありません。もう一度入力してください。
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
A
入力が正しくありません。もう一度入力してください。
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
N
No が選択されました。
選択が完了しました。
G:\Dev\Py\Download>python yes_or_no.py
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
y
Yes が選択されました。
選択が完了しました。
G:\Dev\Py\Download>yy など2文字以上の場合も、正しい入力ではないため、質問が繰り返されます。
G:\Dev\Py\Download>python yes_or_no.py
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
yy
入力が正しくありません。もう一度入力してください。
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
nn
入力が正しくありません。もう一度入力してください。
Y か N を入力(小文字も可)して Enter キーを押してください。[Y/n]
y
Yes が選択されました。
選択が完了しました。入力を促すメッセージのあとに改行したくない場合は以下の記事を参照してください。
https://compota-soft.work/wp1/wp-admin/post.php?post=65138&action=edit
まとめ
- Y, y, N, n が入力されると Yes または No の判定結果を表示して質問のループを抜ける Python のスクリプト例を紹介しました。
- input() で、ユーザーの入力した文字列(末尾の改行を除く)を受け取ります。
- strip() で、前後の空白文字があった場合にそれを除去します。
- lower() で、アルファベットが大文字の場合は小文字に変換します
参照サイト Thank You!
- Welcome to Python.org
- 組み込み関数 — Python 3.14.0 ドキュメント#input
- 組み込み型 — Python 3.14.0 ドキュメント#str.strip
- 組み込み型 — Python 3.14.0 ドキュメント#str.lower
記事一覧 → Compota-Soft-Press

コメント