TypeError: ‘int’ object is not iterableの対処法

Python初心者が直面するエラーの1つに、TypeError: ‘int’ object is not iterableがあります。
本記事では、このエラーが発生する原因と、解決策について解説します。
TypeError: ‘int’ object is not iterableが発生する原因
このエラーが発生するサンプルコードを見てみましょう。
number = 100
for x in number:
print(x)
このサンプルコードでは、numberというint型の変数をfor文で処理しようとしています。
ここでfor文の性質を確認しましょう。
Pythonのfor文は、例えばリストやタプルなどのイテラブル(iterable)なオブジェクトの要素を順に取り出し処理を行います。イテラブル(iterable)とは、英語で「反復可能」「繰り返し可能な」という意味で、Pythonではリスト、タプル、集合、辞書、文字列、rangeなどを指します。
つまり、for文で処理できるのは、これらイテラブルなオブジェクトのみということになります。
イテラブルオブジェクトと、そうでないオブジェクトを表にまとめましたので、参照ください。
イテラブル | イテラブルではない |
---|---|
リスト | 数値(int,floatなど) |
タプル | 真偽値 (boolean) |
集合 | |
辞書 | |
文字列 | |
range | |
file object |
では、サンプルコードに戻って確認してみましょう。
number = 100
for x in number:
print(x)
サンプルコードでは、イテラブルでないint型の変数numberをfor文で処理しようとしています。そのため、TypeError: ‘int’ object is not iterable、つまり「int型のオブジェクトはイテラブルでない」というエラーが発生するのです。
TypeError: ‘int’ object is not iterableの解決方法
解決方法として、イテラブルオブジェクトをfor文に渡してあげることが考えられます。
サンプルコードの解決方法をいくつかご紹介します。
- rangeを使う
変数numberに格納している100を、rangeを使ってfor文で回す方法です。
for x in range(1, 101):
print(x)
出力結果:
1
2
3
:
99
100
- listを使う
1から100までの数値を、リストに格納する方法です。
import numpy as np
list = list(np.arange(1, 101))
for x in list:
print(x)
出力結果:
1
2
3
:
99
100

今回はint型をfor文に渡してしまった例をご紹介しましたが、例えばTypeError: ‘float’ object is not iterableなどが出た際には、イテラブルでない値を渡していないか確認しましょう。
Startlabのプログラミング入門コースは、Python未経験者・初学者にもわかりやすいカリキュラムと続けやすいサポート体制が魅力。自分の学習目的に合っているか、どういった知識を身に付けることができるのかなど、無料カウンセリングでぜひご相談ください!カウンセリングは毎日実施中、お待ちしております!