概要
環境変数で設定した値に「1,000,000
」のようにカンマを入れていたら、タプルとして解釈されてしまうことが分かりましたので、備忘録として紹介します。
エラーが発生したコード
(実際に運用していた時は、別の環境設定ファイルから数値を取得していましたが)実際にやっていたことは以下の通りです。
### 別ファイルで設定した値 ###
NUMBER = 1,000,000
### プログラムのコード ###
number = NUMBER
for i in range(number):
# ...処理...
エラーメッセージ
for i in range(number):
TypeError: 'tuple' object cannot be interpreted as an integer
原因と解決方法
冒頭にも記載した通り、Pythonではカンマで区切られた数値はタプルとして解釈されます。
そのため、1,000,000
と記載していると、タプルとしてrange
関数に渡されてしまいます。
この関数は、整数値を引数に取る必要があるので、「整数値じゃないよ、これタプルだよ」と怒られてしまうのです。
カンマを取り除いて実施すれば問題なく実施されます。
NUMBER = 1000000
ということで、当然といえば当然の話ですが...
カンマを入れて数値を見やすいようにする癖がついていると、要注意だなと思いました。