কম্পিউটার টিউটোরিয়াল

কেন পাইথন for লুপ সিঙ্গেল অবজেক্টের জন্য ডিফল্টলি এক ইটারেশন করে না

পাইথন যেসব অবজেক্ট ইটেরেবল (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" কাজ করে (প্রতিটি ক্যারেক্টারের জন্য লুপ চলে)।

  1. কুইকসর্টের পাইথন প্রোগ্রাম

  2. পাইথনে ব্যাকওয়ার্ড ইটারেশন (Backward Iteration)

  3. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

  4. প্রতিযোগিতামূলক কোডিং-এ পাইথন কেন সেরা পছন্দ?