ログアウト中 ログイン

学習パッケージを選択

【Python】日付計算ツール開発講座 第1章1.2節「日付データの検証」




現在の見出し:1.2節:日付データの検証

見出し一覧

  • 1.2節:日付データの検証
  • - 入力値検証処理の実装
  • - エラーメッセージ表示の追加

【PR】『Python』を学べる企業・個人向けのプログラミングコース

入力値検証処理の実装

前節(第1章 1.1節)で作成したコードを基盤として、入力値検証処理を実装します。

現在のコードでは、ユーザーが「13月」や「32日」のような無効な値を入力しても、そのまま処理が続行されてしまいます。実用的な日付計算ツールを構築するためには、入力された値が適切な範囲内にあるかを検証する機能が必要です。

入力値検証処理では、比較演算子比較演算子は二つの値を比較する際に使用する記号です。ifif文はプログラムで条件分岐を行うための命令文です。文を使用して月の値が1から12の範囲内、日の値が1から31の範囲内にあることを確認します。論理演算子論理演算子は真偽値(True/False)を扱う際に用いられる記号やキーワードです。andを使用して複数の条件を組み合わせることで、より厳密な検証処理を実装できます。

# コード
print("=== 日付データ入力ツール ===")
year = int(input("年を入力してください: "))
month = int(input("月を入力してください: "))
day = int(input("日を入力してください: "))
print(f"入力された日付データ: {year}年{month}月{day}日")

print("\n=== 日付表示フォーマット ===")
print(f"標準形式: {year}/{month:02d}/{day:02d}")
print(f"ハイフン形式: {year}-{month:02d}-{day:02d}")
print(f"日本語形式: {year}年{month:02d}月{day:02d}日")
print(f"アメリカ形式: {month:02d}/{day:02d}/{year}")

print("\n=== 入力値検証 ===")
month_valid = month >= 1 and month <= 12
day_valid = day >= 1 and day <= 31
all_valid = month_valid and day_valid

if all_valid:
    print(f"検証結果: 正常な日付です")
    print(f"検証済み日付: {year}/{month:02d}/{day:02d}")
else:
    print(f"検証結果: 無効な日付です")
    if not month_valid:
        print(f"月のエラー: {month}は無効です(1-12で入力してください)")
    if not day_valid:
        print(f"日のエラー: {day}は無効です(1-31で入力してください)")
# 実行結果
=== 日付データ入力ツール ===
年を入力してください: 2025
月を入力してください: 13
日を入力してください: 32
入力された日付データ: 2025年13月32日

=== 日付表示フォーマット ===
標準形式: 2025/13/32
ハイフン形式: 2025-13-32
日本語形式: 2025年13月32日
アメリカ形式: 13/32/2025

=== 入力値検証 ===
検証結果: 無効な日付です
月のエラー: 13は無効です(1-12で入力してください)
日のエラー: 32は無効です(1-31で入力してください)
行数 種別 コード 解説
14行目 新規 month_valid = month >= 1 and month <= 12 比較演算子と論理演算子andを使用して月の値が1以上12以下の範囲内かを検証し、結果をbool型変数変数はデータを一時的に記憶しておく場所です。に格納
15行目 新規 day_valid = day >= 1 and day <= 31 比較演算子と論理演算子andを使用して日の値が1以上31以下の範囲内かを検証し、結果をbool型変数に格納
16行目 新規 all_valid = month_valid and day_valid 論理演算子andを使用して月と日の両方が有効な場合のみTrueになる総合的な検証結果を作成
18行目 新規 if all_valid: if文を使用して全ての検証が成功した場合の処理を開始
19行目 新規 print(f"検証結果: 正常な日付です") f-stringを使用して検証成功時のメッセージを表示
20行目 新規 print(f"検証済み日付: {year}/{month:02d}/{day:02d}") f-stringと書式指定:02dを使用して検証済みの日付を統一フォーマットで表示
21行目 新規 else: else文を使用して検証が失敗した場合の処理を開始
22行目 新規 print(f"検証結果: 無効な日付です") f-stringを使用して検証失敗時のメッセージを表示
23行目 新規 if not month_valid: if文とnot演算子演算子は数値や文字列などのデータを扱う際に使用される記号や記述方法です。を使用して月の検証が失敗した場合の処理を開始
24行目 新規 print(f"月のエラー: {month}は無効です(1-12で入力してください)") f-stringを使用して月の値が無効な場合の具体的なエラーメッセージを表示
25行目 新規 if not day_valid: if文とnot演算子を使用して日の検証が失敗した場合の処理を開始
26行目 新規 print(f"日のエラー: {day}は無効です(1-31で入力してください)") f-stringを使用して日の値が無効な場合の具体的なエラーメッセージを表示
エラーメッセージ表示の追加

第1章1.2節「エラーメッセージ表示の追加」の続きを見る


すべてのカリキュラムを無料登録で学ぶ

プログラミング・マーケティング・AI活用方法を
今すぐ無料登録すると、全てのコンテンツが視聴可能になります。