অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ থেকে পাইথনে আসলে প্রথম যে সমস্যাটি চোখে পড়ে তাহল পাইথনের ইন্ডেন্টেশন বেইজড কোড ব্লক । পাইথনের একই ইন্ডেন্টেশন সম্বলিত পর পর অবস্থিত লাইন গুলো একই কোড ব্লকের অন্তর্ভুক্ত । উদাহরণ না দিলে হয়ত বিষয়টি স্পষ্ট হবে না ।
1 2 3 4 |
if True: ....print "hello world" ....print "Hi there" ....print "4 space indentation" |
এখানে আমরা ডট (.) দিয়ে স্পেইস বুঝিয়েছি । নিজে টাইপ করার সময় ডট এর পরিবর্তে স্পেইস ব্যবহার করুন না হলে প্রোগ্রাম রান করবে না । এখানে দেখুন ৩টি প্রিন্ট স্টেটমেন্ট আছে যারা একটির পর আরেকটি অবস্থিত এবং প্রত্যেকটি ৪টি স্পেইস দিয়ে ইন্ডেন্ট করা । এর ফলে এই প্রিন্ট স্টেটমেন্ট গুলো একটি কোড ব্লক হিসেবে কাজ করে । কোন স্টেটমেন্ট এ যদি একই ইন্ডেন্টেশন না থাকত সেক্ষেত্রে পাইথন এক্সেপশন (এরর) থ্রো করত ।
1 2 3 4 5 6 7 8 |
if True: ....print "hello world" ....print "Hi there" ....print "4 space indentation" else: ....print "another block" ....print "same indentation as of the if block" ....print "but terminated with the else condition" |
এখানে দেখুন প্রথম ব্লকের পর ইন্ডেন্টেশন আগের জায়গায় ফিরিয়ে নিয়ে ব্লকের সমাপ্তি টানা হয়েছে । পরে আবার ৪ স্পেইস ইন্ডেন্ট করে আরেকটি ব্লকের সূচনা করা হয়েছে । আগের ব্লক এবং এই ব্লক দুটোরই একই ইন্ডেন্টেশন কিন্তু এরা একই ব্লক নয় । কারণ এদের মাঝে else আছে ।
এবার দেখি নেস্টেড ব্লক:
1 2 3 4 5 6 7 8 |
if True: ....print "hello world" ....print "Hi there" ....print "4 space indentation" ....if True: ........print "nested block" ........print "8 spaces" ....print "back to prev block" |
এখানে আমরা স্পেইস এর পরিমান বাড়িয়ে দিয়ে নেস্টেড ব্লক তৈরি করলাম । একইভাবে স্পেইস এর পরিমান সমান পরিমানে কমিয়ে নিয়ে আগের ব্লকে ফিরে গেলাম ।
পাইথনের হোয়াইটস্পেস বেইজড ইন্ডেন্টেশন বুঝতে প্রথম প্রথম বেশ কষ্ট হয় । এজন্য দরকার অনুশীলন । নিজে নিজে ইন্ডেন্ট করার চেষ্টা করুন । গুগলে অনুসন্ধান করে দেখতে পারেন পাইথনের ইন্ডেন্টেশন নিয়ে ।
One reply on “বাংলায় পাইথন – ইন্ডেন্টেশন”
আরেকটু যোগ করি, চারটা স্পেস দিয়ে একটা ব্লক করা যায়, আবার একটা ট্যাব দিয়েও একটা ব্লক করা যায়, তবে ঝামেলা এড়াতে গুরুজনেরা সবসময় ৪ টা স্পেস দিয়েই ব্লক করতে বলেন। এডিটর বা আইডি এ সেটিং বা প্রিফারেন্সেস এ এই অপশনটি সিলেক্ট করে দেওয়া যায়। এছাড়া ট্যাব থেকে স্পেস এ কনভার্ট এবং স্পেস থেকে ট্যাব এ কনভার্ট ও করা য়ায়। সাধারনত কিবোর্ডের ট্যাব বাটন চেপে ইন্ডেন্ট বৃদ্ধি এবং শিফট + ট্যাব চেপে ইন্ডেন্ট হ্রাস করা যায়।