PythonのValueErrorの対処方法ついて現役エンジニアが解説【初心者向け】
初心者向けにPythonのValueErrorの対処方法について現役エンジニアが解説しています。ValueErrorとは関数の引数に対して関数が処理できない値を渡してしまうことで発生するエラーです。ValueErrorの対処方法として確認事項や例外処理によるハンドリング処理の方法について解説します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
PythonのValueErrorの対処方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PythonでValueErrorを利用することで、エラーを把握できます。
実務でも例外処理でValueErrorを利用して、ValueErrorの場合に具体的に個別の処理を行わせるのでぜひ学習してみてください。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
PythonのValueErrorの対処方法について詳しく説明していくね!
お願いします!
この記事では、Pythonにおける例外の1つである、ValueErrorに対する対処方法について解説します。
ValueErrorとは
まずは、ValueErrorがどのような例外であるかについて説明します。
簡単に言ってしまうと、ValueErrorは「関数の引数についてのエラー」です。
関数は引数を渡して実行されることが多いですが、引数を渡していてもその値がおかしいために処理がうまく行かない場合があります。
そのような場合には、関数は処理ができないという事態をValueErrorを出力することで教えてくれます。
ValueErrorが発生する主な原因と対処方法
関数が処理できない値を渡す例
ValueErrorが発生する例は、数値データ(int型やfloat型)を引数に取る関数に対して、関数が処理できない数値を渡してしまう場合です。
数値データのエラーの場合には、平方根を取るmathモジュールのsqrt()関数で、負の数を引数に渡してみます。
math.sqrt(-1)
平方根に負の値を渡すと、次のようなValueErrorが出力されます。
この場合は、事前にif文などを用いて引数に渡そうとしている数値が正の数であるか確認しておくとよいでしょう。
ValueError: math domain error
文字列エラーの例
特定の文字列を引数に取る関数に対して、関数が対応できない文字列を渡してしまうなどです。
引数として渡すデータの型は合っていても、値が適切でないことが原因でValueErrorになります。
たとえば、不適切な文字列を数値型に型変換をする際などに、ValueErrorが発生します。
float("文字列")
floatは、数値を浮動小数点で扱う関数です。
Pythonでfloatを使う方法【初心者向け】 も参考にしてみてください。
実行すると、ValueError: could not convert string to float: '文字列'
という出力になります。
つまり、あらかじめ引数が適切かどうかを確認する処理を行ってから、関数を実行するとよいでしょう。
ValueErrorのハンドリング処理の実装方法
関数を使う前に確認処理を行っていても、例外が発生してしまう場合があります。
処理を中断させたくない場合などのために、例外処理、ハンドリング処理を実装する方法を解説します。
例外処理はtry-except構文を使い、次のように実装します。
例外処理サンプルプログラム
try:
行う処理
except 例外クラス as error:
例外が生じたときに行う処理
ValueError対応サンプル例
try:
ValueErrorが起きるかもしれない処理
except ValueError as error:
print(error)
float(“文字列”)のサンプルをValueErrorに対応させた例
try:
float('文字列')
except ValueError as error:
print(error)
実行結果
解説
今回の記事で、float(“文字列”)について実行した際は、次のようにエラー表示がされたと思います。
今回のサンプルプログラムでは、except ValueError as error:でValueErrorの場合の処理を実装することで、エラーで処理が止まることなく、ValueErrorを活用できます。
まとめ
この記事では、PythonにおけるValueErrorの簡単な説明と、ValueErrorのハンドリング処理について説明しました。
ハンドリング処理は非常に有用な方法であり、また、システムの開発でも重要な処理なのでぜひ覚えておいてください。
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!