Python হল একটি উজ্জ্বল প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ১৯৯১ সালে প্রথম রিলিজ হয়েছিল। এই ল্যাঙ্গুয়েজটি তার বড় جامع লাইব্রেরি এবং ফাংশনাল, ইমপেরেটিভ, প্রোসিডিউরাল, এবং অবজেক্ট-ওরিয়েন্টেড যেমন কয়েকটি প্রোগ্রামিং প্যারাডাইম সাপোর্ট করার জন্য পরিচিত।

'Indentation Error: Expected an indented block' সব ধরনের ব্যবহারকারীদের জন্য হয়; যারা নতুন বা অভিজ্ঞ। যেহেতু Python তার সকল কোড সঠিক হোয়াইটস্পেস দিয়ে আয়োজিত করে, আপনার যদি খারাপ इंडেন্টেশন থাকে, তবে কোড কম্পাইল হবে না এবং আপনাকে একটি এরর মেসেজ রিটার্ন করা হবে।
PEP8-এ অনুসরণ করা কনভেনশন অনুযায়ী, যেখানে প্রয়োজন সেখানে চার হোয়াইটস্পেস থাকা উচিত। প্রতিটি প্রোগ্রামারের জন্য প্রপার इंडেন্টেশন ব্যবহার করা আদর্শ যাতে কোড রিডেবিলিটি উন্নত হয়।
Python-এ Indentation Error-এর কারণ কী?
আগে বলা মত, এই এররটি প্রধানত হয় কারণ আপনার কোডে স্পেস বা ট্যাব এরর আছে। যেহেতু Python প্রোসিডিউরাল ল্যাঙ্গুয়েজ ব্যবহার করে, আপনি এই এরর মুখোমুখি হবেন যদি আপনি ট্যাব/স্পেস সঠিকভাবে না রাখেন। প্রোগ্রামটি সঠিকভাবে চালাতে পারে কিন্তু ইন্টারপ্রেটার যদি এই এররটি খুঁজে পায়, তবে এরর মেসেজটি মাঝপথে আশবে। এররটির কিছু কারণ:
- আপনি আপনার কোডে স্পেস এবং ট্যাব দুটোই ব্যবহার করছেন। যদি দুটোই ইন্টারচেঞ্জেবলি ব্যবহার করা হয়, তবে ইন্টারপ্রেটার নির্ধারণ করতে পারবে না কোনটি ব্যবহার করতে হবে।
- আপনি কিছু इंडেন্ট ভুল রাখেছেন। যদি इंडেন্টেশন প্র্যাকটিস ফলো না করা হয়, তবে আপনি অবশ্যই এই এরর পাবেন।
- আপনি কাম্পাউন্ড স্টেটমেন্টস যেমন 'if', 'for', 'while' ইত্যাদি ইন্ডেন্ট করা ভুলে গেছেন।
- আপনি ইউজার-ডিফাইনড ফাংশন বা ক্লাস ইন্ডেন্ট করা ভুলে গেছেন।
সমাধান ১: ভুল হোয়াইটস্পেস/ট্যাব চেক করা
এই ইস্যুর জন্য কোনো ইনস্ট্যান্ট ফিক্স নেই। যেহেতু কোডটি আপনার, আপনাকে প্রতিটি লাইন gjennom যেতে হবে এবং দেখতে হবে আপনি কোথায় ভুল করেছেন। কোডে স্ট্রাকচারের সাথে সম্মত কয়েকটি ব্লক আছে। যদি একটি 'If' স্টেটমেন্ট থাকে, তবে এর পর 오는 কোডে একটি इंडেন্টেশন থাকতে হবে।

উপরের ডায়াগ্রামটি চেক করুন। দেখুন যে একটি নির্দিষ্ট ব্লকের জন্য इंडেন্টেশন কোডে পুরোপুরি একই থাকে এমনকি মাঝপথে একটি নিউ ব্লক ইন্ট্রোডিউস করা হয়। নিশ্চিত করুন যে আপনার इंडেন্টেশন কনসিস্টেন্ট। আপনি যদি স্পেস ব্যবহার করেন, তবে সবসময় স্পেস ব্যবহার করুন এবং আপনি যদি ট্যাব ব্যবহার করেন, তবে সবসময় ট্যাব ব্যবহার করুন। দুটোর মিক্সিং ইস্যু তৈরি করবে।

সঠিক इंडেন্টেশন উপরের উদাহরণে দেখানো হয়েছে। 'for' লুপের জন্য দেখুন। 'for' লুপের ভেতরে যা কিছু আছে সেটি অবশ্যই ইন্ডেন্টেড হতে হবে। 'for' লুপের ভেতরে, আমাদের একটি 'if' স্টেটমেন্ট আছে। 'if' স্টেটমেন্টের ভেতরে, সবকিছু অবশ্যই আরও বেশি ইন্ডেন্টেড হতে হবে।
আপনি সহজে চেক করতে পারেন ইন্ডেন্টেশন এরর কোথায় হয়েছে এরর লগ চেক করে এবং এরর কোথা থেকে আশা সেটি লাইন দেখে।
সমাধান ২: এডিটরে ট্যাব/স্পেস সিম্বল ইনএবল করা
আপনি যদি 'অনুমান' দিয়ে আপনার কোড ইন্ডেন্ট করার সময় কঠিনাই অনুভব করেন যেমন সব প্রোগ্রামার করে, তবে আপনি আপনার IDE বা কোড এডিটরে ট্যাব/স্পেস সিম্বল ইনএবল করতে পারেন। এই অপশনটি আপনার কোডে ছোট 'ডটস' ইনএবল করবে যেখানে প্রতিটি ডট একটি স্পেস বা ট্যাব রিপ্রেজেন্ট করে। আপনি এটিকে ব্যবহার করতে পারেন কোড আরও প্রপারলি ইন্ডেন্ট করতে এবং নিশ্চিত করতে যে কোনো এক্সট্রা ইন্ডেন্ট নেই বা কিছু মিসিং নেই।
এই উদাহরণে, আমরা Notepad++ নিব এবং দেখব কীভাবে আপনি সিম্বলগুলো ইনএবল করতে পারেন। আপনি যদি অন্য সফ্টওয়্যার ব্যবহার করেন কোড এডিটিংয়ের জন্য, তবে সেটি স্পেসিফিক সেটিং ইনএবল করতে পারেন।
- View > Show Symbol > Show Whitespace and TAB চাপুন

- এখন অপশনটি ইনএবলড হয়েছে। আপনি Indent Guide ও ইনএবল করতে পারেন যাতে জিনিসগুলো আপনার জন্য সহজ হয়।

উপরের উদাহরণটি চেক করুন। প্রতিটি ক্লাসের পর ইমপ্লিমেন্ট করা ইন্ডেন্টেশনটি দেখুন। প্রতিটি স্পেস একটি সিঙ্গল ডট দ্বারা রিপ্রেজেন্ট করা হয়েছে। আপনার কোডে ভুল ইন্ডেন্টেশন পরিবর্তন করার পর, আবার রান করুন এবং দেখুন এটি ইস্যুটি সমাধান করে কিনা।