Pythonでeval()関数を使用してみます。
eval()関数は、指定された式が、「数式」であるか「論理式」であるかを評価することができます。
■構文(引数,パラメータ)
eval(expression, globals, locals)
expressionは、文字列を渡します。渡す文字列はコードとして評価されるものです。
globalsは、グローバルパラメータを含む辞書。これはオプションになります。
localsは、ローカルパラメータを含む辞書。これはオプションになります。
■Python
Google Colaboratory(Google Colab),Python3.7.13
■実際にeval()関数を使用する
では、実際にeval()関数に引数,パラメータとして、コードとして評価される文字列を渡して、どのような結果が返されるのかを見ていきます。
■コード
x = eval('4*4') print(x)
今回はxという変数を定義し、その中でeval()関数を用います。括弧内には引数,パラメータとして、シングルクォーテーションを用いて数式を渡します。これで渡した文字列が解析され数式を判断し、結果が返されます。返された結果はx変数に格納されます。
格納後、print()を用いてx変数の情報を出力します。
■実行・検証
では、このスクリプトを実行してみます。
実行してみると、eval()関数を用いたことで、引数,パラメータとして渡した文字列が、「数式」であるか「論理式」であるかが評価され結果が返され、結果を出力させることができました。
■引数,パラメータを渡す際にシングルクォーテーションを用いない場合
なお、文字列を引数,パラメータとして渡す際にシングルクォーテーションを用いない場合は下記のエラーが出力されます。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-6-d5110f13d631> in <module>() ----> 1 x = eval(4*4) 2 3 print(x) TypeError: eval() arg 1 must be a string, bytes or code object
コメント