素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【Python3】os.environで取得した環境変数の文字列型(str)の値を数値方(int)に変更するやり方【キャスト方法】

投稿日:

スポンサーリンク

336×280




文字列で取れてしまう

お手軽に環境変数を扱える

Pythonを使ってAWSのLambda関数やツールを作成していると、環境変数に設定した値を取得して利用したいというケースが少なからず発生すると思います。

Python3での環境変数の値の取り方は以下のようにとても簡単です。
試しにPYTHONPATHと言う環境変数を取得してみます。

存在しない環境変数を指定した場合はNoneが取得されます。

数値はそのままは使えない

ただ、数値を環境変数にもたせている場合はそのまま使おうとすると以下のようになってしまいます。

これは、os.environで取得した値がint型ではなくstr型で取得されるPythonの仕様のため、そのままではrange関数の引数に使えない、と言う現象になります。

ですので、int型にキャストする必要があるのですが、Python3では簡単にキャストをすることが出来るのでご紹介致します。

手順

int関数を利用

Pythonには文字列を数値に変換するintメソッドが用意されています。

これを利用することで簡単に文字列数字を数値に直すことができます。

標準出力上は変わりませんが、しっかりとrange関数に渡せるようになりましたね♪

半角文字列数値以外をint関数に渡すとどうなる?

では、実装ミス等が原因でint関数に文字列数字以外を渡してみましょう。

アルファベットの場合

まずはアルファベットの場合です。

予想通りエラーが出ましたね。

全角数値の場合

では、次は全角数値の場合です。

なんと動いてしまいました・・・・!
これは予想外でしたね。

あまり使うケースはないとは思いますが、このケースは念頭に入れておいた方が良いかもしれませんね。

オススメの参考書

独学プログラマー Python言語の基本から仕事のやり方まで

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

終わりに

以上のように、知っておかないとバグが発生してしまいます。

近年はサーバーレスアーキテクチャや人工知能などでPythonが活躍出来る場が増えてきているので、覚えておくと良いでしょう♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , ,

blogenist

Author: blogenist