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))
出力:
文字列 s
は反復可能です。
TypeError
は Python でよくあるエラーの 1つです。 間違ったデータ型のオブジェクトで操作または関数を実行すると発生します。
整数データ型を反復処理すると、エラー int object is not iterable
が発生します。 これで、Python でこの問題を解決する方法がわかったはずです。
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません