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

投稿日: 2019年1月14日
最終更新日:

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

YouTubeも見てね♪

ねこじゃすり

created by Rinker
PEPPY(ペピイ)
¥3,850 (2024/03/15 19:03:46時点 Amazon調べ-詳細)

猫を魅了する魔法の装備品!

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/03/15 15:06:44時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/03/15 19:06:06時点 Amazon調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/03/15 19:03:46時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

レッドブル エナジードリンク 250ml×24本

created by Rinker
Red Bull(レッドブル)
¥4,080 (2024/03/15 19:03:47時点 Amazon調べ-詳細)

翼を授けよう!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/03/15 19:06:03時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

文字列で取れてしまう

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

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

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

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

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

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

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

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

手順

int関数を利用

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

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

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

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

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

アルファベットの場合

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

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

全角数値の場合

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

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

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

終わりに

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

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

CATEGORIES & TAGS

IT