Day 159入力の正規化パイプラインを関数合成で作る
Pythonコード
1def normalize_input(input_str):2 input_str = input_str.strip()3 input_str = input_str.lower()4 return input_str5 6def convert_to_number(input_str):7 try:8 num = float(input_str)9 return num10 except ValueError:11 return None12 13def process_input():14 user_input = input("数値を入力してください: ")15 normalized_input = normalize_input(user_input)16 num = convert_to_number(normalized_input)17 if num is not None:18 print("入力された数値は:", num)19 else:20 print("数値に変換できませんでした")21 22process_input()
解説
- 行1〜4: 入力された文字列を正規化する関数 `normalize_input` を定義します。`strip` メソッドで先頭と末尾の空白を削除し、`lower` メソッドで文字列を小文字に変換します。ここで、`strip` と `lower` は文字列を操作する組み込みメソッドです。
- 行6〜11: 入力された文字列を数値に変換する関数 `convert_to_number` を定義します。`try` ブロックで `float` 関数を使って数値に変換を試み、成功した場合は数値を返します。失敗した場合は `except` ブロックで `None` を返します。ここで、`float` は文字列を浮動小数点数に変換する組み込み関数です。
- 行13〜20: 入力処理のメイン関数 `process_input` を定義します。`input` 関数でユーザーから入力を受け取り、`normalize_input` 関数で入力を正規化し、`convert_to_number` 関数で数値に変換します。数値に変換できた場合は入力された数値を表示し、失敗した場合はエラーメッセージを表示します。ここで、`input` はユーザーから入力を受け取る組み込み関数です。
- 行21: `process_input` 関数を呼び出して、入力処理を開始します。
- 行18〜20: 補足: print() は画面に文字や値を表示する関数です。
次に試してみよう
- 入力された文字列を整数に変換する関数を作成してみましょう。
- 入力された文字列を指定されたフォーマットに従って加工する関数を作成してみましょう。
- 入力された数値を一定の範囲内に収める関数を作成してみましょう。