Pythonで入力チェックするには? validate 関数をやさしく解説

入力チェックのやり方
ぷろどあ
ぷろどあ

ユーザーからの入力、ちゃんと正しいか確認するにはどうしたらいいんだろう?

私も、Webサイトを作っていて、「入力の正しさ」をどう扱えばいいのか悩むことがあります。

プログラムが期待通りに動くためには、入ってくる情報が『正しいかどうかを判別する』ことが、とても大切になりますよね。

もし間違った情報がプログラムに入ってしまうと、予想外の動きをすることも…

そんな事態を防ぐためにも、この入力の判別は欠かせません。

実は、Pythonには、ユーザーにも開発者にも優しい入力チェックを叶える頼もしい味方がいます。それが、今回ご紹介するvalidate関数です。

この記事では、「validateとは何か?」「何のために使うのか?」を、身近なたとえと具体的なコード例を使って、やさしく解説していきます!

validate は「チェックする」こと

まず、validate(バリデート)は、「入力された値が正しいかどうかをチェックすること」です。

たとえば、

  • 名前が入力されているか?
  • 数字が正しく入力されているか?
  • パスワードが8文字以上あるか?

こういった「入力がルール通りかどうか」を確認することを「バリデートする」と言います。

また、たとえば、

自販機でジュースを買うときを思い浮かべてください。

自販機は、投入されるお金を確認しています。

お金が入っていないと → 「お金を入れてください」
お金が足りないと → 「残り○円足りません」

この「ちゃんとお金が入ってる?」という確認こそが、「バリデーション(validate)」なのです。

Pythonでバリデーションしてみよう!

では、Pythonで年齢を入力してもらう例で考えてみましょう。

お題:あなたは何歳ですか?

ユーザーに年齢を入力してもらい、その年齢が「0〜150」の間であれば「ようこそ!」と表示し、そうでなければ「正しい年齢を入力してください」と注意を表示するプログラムです。

def validate_age(age):
  if age < 0 or age > 150:
    return False
  else:
    return True

age_input = input(“年齢を数字で入力してください:”)
age = int(age_input)

if validate_age(age):
  print(“ようこそ!”)
else:
  print(“正しい年齢を入力してください。”)

このプログラムでバリデートしているのは、以下のところです。

if age < 0 or age > 150:
  return False
else:
  return True

年齢が、0歳以下と150歳以上の場合は誤り、そうでないときは正しいとなる内容です。

ぷろどあ
ぷろどあ

マイナスの年齢や150歳以上や、 そういう “ない値” が入っていないかチェックしているんです!

上記のコードを実行すると、このような結果が返ってきます。

年齢を数字で入力してください:30
ようこそ!

年齢を数字で入力してください:-5
正しい年齢を入力してください。

なぜ validate(バリデート)が必要なの?

人が入力する値には、ミスや予想外のものがあります。

たとえば、

  • 空白のまま送ってしまう
  • 数字で入力するところに文字を入れる
  • 範囲外の値を入れてしまう

こうした入力は、もしそのままプログラムに使われてしまうと、トラブルを引き起こす可能性があります。

たとえば、

  • プログラムがエラーで止まる
  • データがおかしくなる
  • セキュリティ上の危険が生じる

こうしたトラブルを未然に防ぐのが validate の役割です。

プログラムを安全に正しく動かし、システム全体の健康を守る「お医者さん」のような存在といえます。

ぷろどあ
ぷろどあ

validate のおかげで、ユーザーも開発者も安心♪

この記事のまとめ
✓ validate(バリデート)= 入力された値が正しいかを確認する
✓ 条件を使ってチェックし、OKなら True、NGなら False を返す
✓ validateはシステムをトラブルから守ってくれる