Python3 CLI で Yes/No の入力に対応するスクリプト例

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

Python3 CLI で YesNo の入力に対応するスクリプト例2

※ 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()

上記のスクリプトは

  1. input() で、ユーザーの入力した文字列(末尾の改行を除く)を受け取り
  2. strip() で、前後の空白文字があった場合にそれを除去し、
  3. lower() で、アルファベットが大文字の場合は小文字に変換して

入力した文字列を返します。

input()
input(prompt/)

引数 prompt が存在すれば、それが末尾の改行を除いて標準出力に書き出されます。次に、この関数は入力から 1 行を読み込み、文字列に変換して (末尾の改行を除いて) 返します。 EOF が読み込まれたとき、 EOFError が送出されます。

組み込み関数 — Python 3.14.0 ドキュメント#input

str.strip(chars=None/)

文字列の先頭および末尾部分を除去したコピーを返します。引数 chars は除去される文字集合を指定する文字列です。 chars が省略されるか None の場合、空白文字が除去されます。 chars 文字列は接頭語でも接尾語でもなく、そこに含まれる文字の組み合わせ全てがはぎ取られます:

組み込み型 — Python 3.14.0 ドキュメント#str.strip

str.lower()

全ての大小文字の区別のある文字 [4] が小文字に変換された、文字列のコピーを返します。

組み込み型 — Python 3.14.0 ドキュメント#str.lower

テスト

コマンドプロンプトで python アプリを呼び出して、作成した .py ファイル(例:yes_or_no.py)を実行します。

Windows11 の場合、エクスプローラで .py ファイルのあるフォルダを開いてアドレスバーcmd⏎ と入力すると、そのフォルダをカレントディレクトリにしてコマンドプロンプトが開きます。

Python3 CLI で YesNo の入力に対応するスクリプト例1
python yes_or_no.py

と実行すると、 Yes か No の入力を促すメッセージが表示されます。

何も入力しなかったり A など無関係な文字列のあとにエンターキーを押すと、正しくない入力のため、質問が繰り返されます。

Y, y, N, n の場合は、大文字小文字に関わらず、Yes または No がされたと判定した print 文が出力されて質問のループから抜けます。

Python3 CLI で YesNo の入力に対応するスクリプト例2
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!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました