পাইথন যেসব অবজেক্ট ইটেরেবল (iterable) নয়, সেগুলোর ওপর for লুপ চালানো যায় না। for লুপ কনস্ট্রাক্ট ইনবিল্ট ফাংশন (__iter__ এবং __next__) কল করে ইটেরেবল থেকে এলিমেন্ট বের করে।
নন-ইটেরেবল ডেটা টাইপ (যেমন: ইন্টিজার, ফ্লোট, None) এর এই মেথডগুলো নেই। ফলে পাইথন সেগুলো থেকে এলিমেন্ট এক্সট্র্যাক্ট করতে পারে না এবং TypeError: 'int' object is not iterable এরর দেয়।
উদাহরণ
# এটি এরর দেবে
for i in 5:
print(i)
# TypeError: 'int' object is not iterable
সঠিক উপায়
যদি আপনি একটি সিঙ্গেল ভ্যালুকে লুপে ব্যবহার করতে চান, তবে সেটিকে একটি ইটেরেবল কন্টেইনারে (লিস্ট, টাপল) রাখুন:
for i in [5]: # বা (5,)
print(i)
নোট: স্ট্রিং ইটেরেবল, তাই for c in "hello" কাজ করে (প্রতিটি ক্যারেক্টারের জন্য লুপ চলে)।