def 小児科医():

かけだし小児科医が仕事の合間にプログラミングを勉強するブログです。

退屈なことはPythonにやらせよう 第2版 読んでみた⑧

 

 

前回↓

defpediatric.hatenablog.com

今回は「入力検証」

入力検証とは"ユーザーが入力した値が適切かどうか調べること"

try except文で出来そうだけど、PyInputPlusモジュールというのを使うと良いらしい。

 

 PyInputPlus

  • inputStr():inputと変わらないけど下記のキーワード引数を使用可能
  • inputNum():数字を保証
  • inputChoice():指定された選択肢の1つであることを保証
  • inputMenu():番号や頭文字のついた選択肢の1つであることを保証
  • inputDatetime():日付と時間出ることを保証
  • inputYesNo():Yes or Noであることの保証
  • inputBool():True or Falseであることの保証
  • inputEmail():メールアドレスであることを保証 
  • inputFilepath():ファイルパス名であることの保証
  • inputPassword():入力文字を*で表示
  • inputCustom():引数に検証関数を入れることが可能

※キーワード引数

min,max,graterThan,lessThan:入力値の範囲を指定可能

blank=True:空の文字列を受付可能にできる

limit,Timeout:整数値を渡すと回答受付の制限時間、回数を設定できる。defaultを指定すると制限を超えた場合デフォルト値を返すようになる。

allowRegexes,blockRegexes:受けつける正規表現、受けつけたくない正規表現を指定できる。

 

 

今回は完全にただのメモ帳になってしまった。

覚えるの多いなぁと思いつつわからなくなったらchatGPTにでも聞くかという気持ち。

 

 

ちなみに、上記の内容の記事をchatGPT考えてみてもらった結果。

 

「入力検証:ユーザーの入力値を確実にチェックしよう」

 

プログラムの開発やデータ処理において、正しい入力値を得ることは非常に重要です。入力値の検証は、ユーザーが入力した値が適切かどうかを確認するプロセスです。この記事では、Pythonのtry-except文を使用した基本的な入力検証方法に加えて、PyInputPlusモジュールの活用についてもご紹介します。

 

PyInputPlusモジュールは、様々な入力検証のニーズに対応するために設計されています。例えば、inputNum()関数を使用すると、ユーザーが入力した値が数字であることを保証することができます。同様に、inputChoice()関数やinputMenu()関数を使用すれば、指定された選択肢の中からユーザーが正しい選択を行ったかどうかを確認できます。

 

また、PyInputPlusモジュールでは、日付や時間、メールアドレスなど、特定の形式を要求する入力にも対応しています。例えば、inputDatetime()関数を使用すると、ユーザーが入力した値が日付と時間の形式であることを保証できます。さらに、inputEmail()関数を使用すれば、ユーザーが正しいメールアドレスを入力したかどうかを確認することができます。

 

PyInputPlusモジュールの便利な機能として、キーワード引数があります。例えば、minやmaxを指定することで、入力値の範囲を制限することができます。また、blank=Trueを指定すると、空の文字列を許容することも可能です。さらに、limitやTimeoutを設定することで、回答受付の制限時間や回数を指定することもできます。

 

最後に、PyInputPlusモジュールでは、正規表現を使用して受け入れるか拒否するパターンを指定することもできます。allowRegexesを使用すれば、特定の正規表現にマッチする入力を受け付けることができます。逆に、blockRegexesを使用すれば、特定の正規表現にマッチする入力を拒否することができます。

 

入力検証はプログラムの信頼性を高めるために欠かせない要素です。PyInputPlusモジュールを活用することで、より堅牢な入力検証を実装することができます。入力値の適切なチェックにより、予期せぬエラーや不正な操作を防ぎ、ユーザー体験の向上につなげましょう。

 

 

ほえー。もうこれ記事書く気失せるな。

でもまぁ「Pythonのtry-except文を使用した基本的な入力検証方法に加えて、PyInputPlusモジュールの活用についてもご紹介します。」とか言っといてtry except文の話出てきてないあたりはやっぱ完全じゃないのかな。