Python の TypeError: Int Object Is Not Iterable エラーを修正

Rohan Timalsina 2023年6月21日
Python の TypeError: Int Object Is Not Iterable エラーを修正

Python では、操作または関数で間違ったデータ型のオブジェクトを使用すると、TypeError が発生します。 たとえば、文字列と整数を追加すると、TypeError が発生します。

反復可能でない整数をループしようとすると、エラー TypeError: 'int' object is not iterable が発生します。 Python の反復可能なオブジェクトは、リスト、タプル、辞書、およびセットです。

このチュートリアルでは、Python の TypeError: 'int' object is not iterable エラーを修正する方法を説明します。

Python の TypeError: Int Object Is Not Iterable エラーを修正

Python での TypeError 例外の例を見てみましょう。

s = "apple"
counter = 0
for i in len(s):
    if i in ("a", "e", "i", "o", "u"):
        counter += 1
print("No. of vowels:" + str(counter))

出力:

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 3, in <module>
    for i in len(s):
TypeError: 'int' object is not iterable

len() が整数値 (指定された文字列の長さ) を返すため、コード for i in len(s) の 3 行目で例外が発生します。 int オブジェクトは Python では反復可能ではないため、整数に対して for ループを使用することはできません。

このエラーを修正するには、反復可能なオブジェクトに対してループが反復されるようにする必要があります。 len() 関数を削除して、文字列を反復処理できます。

s = "apple"
counter = 0
for i in s:
    if i in ("a", "e", "i", "o", "u"):
        counter += 1
print("No. of vowels:" + str(counter))

出力:

Number of vowels:2

または、enumerate() 関数を使用して文字列の文字を反復処理することもできます。

counter = 0
s = "apple"
for i, v in enumerate(s):
    if v in ("a", "e", "i", "o", "u"):
        counter += 1
print("No. of vowels:" + str(counter))

出力:

Number of vowels:2

dir() 関数を使用して、オブジェクトが反復可能かどうかを確認できます。 出力に魔法のメソッド __iter__ が含まれている場合、オブジェクトは反復可能です。

s = "apple"
print(dir(s))

出力:

オブジェクトが python で反復可能かどうかをチェック

文字列 s は反復可能です。

TypeError は Python でよくあるエラーの 1つです。 間違ったデータ型のオブジェクトで操作または関数を実行すると発生します。

整数データ型を反復処理すると、エラー int object is not iterable が発生します。 これで、Python でこの問題を解決する方法がわかったはずです。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - Python Error