- পাইথন ইলাস্ট্রেটেড গল্প বলার ভঙ্গি, চরিত্র এবং হাতে আঁকা ডায়াগ্রাম ব্যবহার করে সম্পূর্ণ নতুনদের জন্য পাইথনকে সহজবোধ্য করে তোলে।
- মূল বিষয়গুলোর মধ্যে রয়েছে ইনস্টলেশন, সিনট্যাক্স, ডেটা টাইপ, কন্ট্রোল ফ্লো, ফাংশন, ফাইল আই/ও, এক্সেপশন এবং অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং।
- অনুশীলনী, কুইজ, ল্যাম্বডা, কম্প্রিহেনশন এবং OOP খেলার ছলে শেখা থেকে বাস্তব জগতের মজবুত পাইথন দক্ষতার দিকে নিয়ে যায়।
- বর্ণনামূলক নির্দেশিকার সাথে সুসংগঠিত রেফারেন্সের সমন্বয় শিক্ষার্থীদের পাইথন সম্পর্কে স্বজ্ঞা এবং একটি গভীর ও পদ্ধতিগত বোঝাপড়া উভয়ই প্রদান করে।
পাইথন শেখা মানেই কোনো নীরস ম্যানুয়াল পড়া বা প্রায় না-বোঝা কোডের স্তূপের সাথে যুদ্ধ করা নয়। প্রকৃতপক্ষে, শিক্ষানবিস-বান্ধব বইয়ের একটি নতুন ধারা পাইথনকে একটি দৃশ্যমান, গল্প-নির্ভর অভিযান হিসেবে উপস্থাপন করে, যেখানে আপনি অদ্ভুত চরিত্রদের অনুসরণ করেন, ছোট ছোট চ্যালেঞ্জ সমাধান করেন এবং ধীরে ধীরে প্রোগ্রামিংয়ের মূল ধারণাগুলো আত্মস্থ করেন, এমনকি আপনি কতটা শিখে ফেলেছেন তা টেরও পান না।
এগুলোর মধ্যে, “পাইথন ইলাস্ট্রেটেড” এমন একটি নির্দেশিকা হিসেবে বিশেষভাবে উল্লেখযোগ্য, যা হাতে আঁকা ছবি, হাস্যরস, সুচিন্তিত তত্ত্ব এবং ব্যবহারিক অনুশীলনীকে একটি একক অভিজ্ঞতায় মিশ্রিত করে। আপনাকে দুর্বোধ্য পরিভাষার জালে না জড়িয়ে, এটি একটি তীক্ষ্ণবুদ্ধির বিড়াল এবং কিছুটা হতবিহ্বল একটি ড্যাচশান্ডকে দিয়ে সবকিছু বুঝিয়ে দেয়। পাইথন ইনস্টল করা হচ্ছে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং, ডিবাগিং এবং এমনকি ল্যাম্বডা ও কম্প্রিহেনশনের মতো ফাংশনাল কনস্ট্রাক্ট পর্যন্ত। এর চারপাশে আরও প্রথাগত অথচ সহজবোধ্য পাইথন বই এবং পিডিএফ-এর একটি সম্পূর্ণ ইকোসিস্টেম রয়েছে, যা সিনট্যাক্স, ডেটা টাইপ, কন্ট্রোল ফ্লো, ফাংশন, ক্লাস এবং অ্যাডভান্সড বিষয়গুলো নিয়ে গভীরভাবে আলোচনা করে।
“পাইথন ইলাস্ট্রেটেড”-কে অন্যান্য পাইথন বই থেকে কী আলাদা করে?
“পাইথন ইলাস্ট্রেটেড”-এর কেন্দ্রবিন্দুতে রয়েছে জিয়া নামের বিড়াল এবং উইসজে নামের ড্যাচশান্ডকে নিয়ে একটি কাল্পনিক যাত্রা, যেখানে তারা একজন একেবারে নতুন শিক্ষার্থীর মানসিকতাকে প্রতিফলিত করার পাশাপাশি একসাথে পাইথন অন্বেষণ করে। জিয়া চতুর, ধৈর্যশীল এবং কোডে অভিজ্ঞ, অন্যদিকে উইসিয়ে এমন একজন শিক্ষার্থীর প্রতিনিধিত্ব করে যে ভুল করা, আটকে যাওয়া বা পরবর্তী চ্যালেঞ্জ মোকাবেলা করার আগে আরেক কাপ কফির প্রয়োজন নিয়ে চিন্তিত থাকে।
আখ্যানের এই কাঠামোটি কেবল একটি আকর্ষণীয় কৌশল নয়: এটি ধারণাগুলোকে একটি স্বাভাবিক ক্রমে উপস্থাপন করতে এবং একজন প্রকৃত শিক্ষার্থী কীভাবে চিন্তা করে তার একটি মডেল হিসেবে ব্যবহৃত হয়। বইটিতে যখন লুপ, ডিবাগিং বা ক্লাসের মতো কোনো জটিল বিষয় ব্যাখ্যা করা হয়, তখন উইজি প্রায়শই অভিযোগ করেন, দ্বিধা প্রকাশ করেন, অথবা ঠিক সেই প্রশ্নগুলোই করেন যা পাঠকরা মনে মনে ভাবছেন। জিয়া শান্তভাবে ব্যাখ্যা, উপমা এবং ভিজ্যুয়াল এইডের মাধ্যমে তার উত্তর দেন, যা আপনাকে বুঝতে সাহায্য করে যে পাইথনের বৃহত্তর প্রেক্ষাপটে প্রতিটি অংশ কীভাবে খাপ খায়।
এর অন্যতম আকর্ষণীয় দিক হলো হাতে আঁকা চিত্রকলার শৈলী, যা প্রচলিত নীরস স্ক্রিনশটগুলোর স্থান নিয়েছে। উদাহরণস্বরূপ, বইটি যখন আপনাকে একটি টার্মিনাল উইন্ডো বা ভিএস কোড ডিবাগার দেখায়, তখন এটি শুধু একটি স্ক্রিনশট পেস্ট করে না; বরং এটি একটি সরলীকৃত সংস্করণ আঁকে, যেখানে সূক্ষ্ম হাইলাইট এবং তীরচিহ্ন দিয়ে সেই অংশগুলোকে চিহ্নিত করা হয় যা আপনার সত্যিই লক্ষ্য করা প্রয়োজন—যেমন ব্রেকপয়েন্টগুলো কোথায় দেখা যায়, কোন প্যানেলে ভেরিয়েবলগুলো প্রদর্শিত হয় এবং এরর মেসেজগুলো কোথায় থাকে।
এই চিত্রগুলি সেইসব দৃশ্যগতভাবে শেখা শিক্ষার্থীদের জন্য বিশেষভাবে মূল্যবান, যারা অগোছালো ইন্টারফেসে পথ হারিয়ে ফেলেন। ডিকোড করার চেষ্টা করার পরিবর্তে সম্পূর্ণ IDE স্ক্রিনআপনি কেবল অপরিহার্য অংশগুলোই দেখতে পান, সাথে থাকে ঠিক ততটুকুই বিবরণ যা পরে আপনার নিজের কম্পিউটারে বিষয়টি অনুসরণ করার জন্য প্রয়োজন। এই দৃশ্যগত স্বচ্ছতার উপরেই অনেক পর্যালোচক জোর দেন: পর্দায় গুরুত্বপূর্ণ বিষয় খুঁজতে গিয়ে আপনার মনোযোগ নষ্ট হয় না; ছবিগুলোই আপনাকে সরাসরি বলে দেয়।
‘পাইথন ইলাস্ট্রেটেড’ জুড়ে সুরটি ইচ্ছাকৃতভাবে উষ্ণ, মানবিক এবং কখনও কখনও কৌতুকপূর্ণভাবে আত্ম-অবমাননাকর। কঠিন সময়ে একটু হেঁটে আসা বা আরেক কাপ কফি খাওয়ার প্রয়োজন হতে পারে—উইজির এই মন্তব্যটি একটি মৃদু অনুস্মারক যে, সংগ্রাম করাটা স্বাভাবিক, এর মানে এই নয় যে আপনি “প্রোগ্রামিংয়ের জন্য উপযুক্ত নন”। জিয়া বারবার জোর দিয়ে বলেন যে, প্রোগ্রামিং শুরুতে সবার জন্যই বেশ কঠিন এবং ধৈর্য এই প্রক্রিয়ারই একটি অংশ।
“পাইথন ইলাস্ট্রেটেড” কাদের জন্য এবং এতে কী কী বিষয় অন্তর্ভুক্ত রয়েছে?
বইটি মূলত সম্পূর্ণ নতুনদের জন্য অথবা যাদের কোডিং সম্পর্কে সামান্য অভিজ্ঞতা আছে এবং যারা পাইথনে একটি সহজ কিন্তু নির্ভরযোগ্য পথ খুঁজছেন, তাদের জন্য তৈরি করা হয়েছে। এর মানে হলো, ভেরিয়েবল, লুপ বা ফাংশন নিয়ে আপনার পূর্ব অভিজ্ঞতার প্রয়োজন নেই। আপনি যদি টাইপ করতে পারেন, নির্দেশনা অনুসরণ করতে পারেন এবং আপনার কৌতূহল থাকে, তবে আপনি এর লক্ষ্যভুক্তদের মধ্যেই পড়েন। এটি সেইসব পরামর্শদাতাদের জন্যও বেশ কার্যকর, যারা একজন নতুন শিক্ষার্থীকে পথ দেখানোর জন্য একটি সুসংগঠিত সহায়ক উপকরণ চান।
লেখকগণ পাইথন ভাষার প্রতিটি দুর্বোধ্য বৈশিষ্ট্য অন্তর্ভুক্ত করার চেষ্টা না করে, বরং এর একটি নির্বাচিত ও ব্যবহারিক উপাংশের উপর মনোযোগ দিয়েছেন। আপনি পাইথন ইনস্টল করা, একটি ডেভেলপমেন্ট এনভায়রনমেন্ট বেছে নেওয়া, টার্মিনাল ব্যবহার করা শিখবেন এবং তারপর প্রোগ্রামিংয়ের মূল ভিত্তিগুলো ধাপে ধাপে আয়ত্ত করবেন।
- পাইথন এবং একটি সেট আপ করা কোড এডিটর বা IDE (ভিএস কোড ব্যবহার করে উদাহরণ এবং ডিবাগারের পরিচিতি সহ)
- ভেরিয়েবল এবং মৌলিক ডেটা টাইপ যেমন সংখ্যা, স্ট্রিং এবং বুলিয়ান
- সংগ্রহতালিকা, টাপল এবং অভিধান, এবং কখন কোনটি উপযুক্ত।
- শর্তাধীন এবং লুপif, elif, else, for এবং while
- কার্যাবলীপ্যারামিটার, রিটার্ন ভ্যালু এবং লজিকের পুনঃব্যবহার
- ফাইল হ্যান্ডলিংফাইল থেকে পড়া এবং ফাইলে লেখা
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংক্লাস, অ্যাট্রিবিউট এবং ইনহেরিটেন্স
- ভিএস কোডে ডিবাগিংব্রেকপয়েন্ট এবং অবস্থা পরিদর্শন সহ
- বইটির পরের পদক্ষেপযেমন আরও উন্নত বিষয় বা বাহ্যিক লাইব্রেরি অন্বেষণ করা।
পর্যালোচকরা উল্লেখ করেছেন যে বিষয়গুলোর ক্রম কোনো আকস্মিকতা নয়। উদাহরণস্বরূপ, বইটি হুট করে লুপের বিষয়ে আলোচনা শুরু করে না; এটি প্রথমে আপনাকে লিস্ট এবং ডিকশনারির ভিত্তি তৈরি করে দেয়, যাতে যখন আপনি 'for' স্টেটমেন্টের সম্মুখীন হবেন, তখন এটি কীভাবে ওই কালেকশনগুলোর ওপর পুনরাবৃত্তি করে তা দেখার জন্য আপনি প্রস্তুত থাকেন। একইভাবে, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংকে একটি ভিত্তি হিসেবে উপস্থাপন করা হয়েছে, কোনো অ্যাকাডেমিক অনুশীলন হিসেবে নয়: আপনি ক্লাস এবং ইনহেরিটেন্স সম্পর্কে ঠিক ততটুকুই জানতে পারেন, যা আপনাকে পরবর্তীতে আত্মবিশ্বাসের সাথে মধ্যবর্তী স্তরের বই পড়তে সাহায্য করবে।
এখানে ইচ্ছাকৃতভাবে কিছু বিষয় বাদ দেওয়া হয়েছে, প্রধানত উন্নত বা কদাচিৎ ব্যবহৃত ল্যাঙ্গুয়েজ ফিচার, যেমন ননলোকাল বা টাইপ ডিক্লারেশন। এর কারণটা সহজ: নতুনরা প্রথম অধ্যায়ের গৌণ বৈশিষ্ট্য নিয়ে মাথা ঘামানোর চেয়ে, ভাষার সেই মূল ৮০ শতাংশ আয়ত্ত করলে বেশি উপকৃত হয় যা তারা প্রতিদিন ব্যবহার করবে। একবার সেই ভিত্তি মজবুত হয়ে গেলে, অন্যান্য উৎস থেকে আরও গভীর খুঁটিনাটি বিষয় শিখে নেওয়া অনেক সহজ হয়ে যায়।
কিছু প্রযুক্তিগত পর্যালোচকের মতে, পরিবেশ ব্যবস্থাপনা এবং বাহ্যিক প্যাকেজগুলোর ক্ষেত্রে আরও আলোচনার সুযোগ রয়েছে। বইটি আপনাকে পাইথন ইনস্টল করা এবং স্থানীয়ভাবে কোড লেখার প্রক্রিয়াটি ধাপে ধাপে দেখিয়ে দেয়, কিন্তু এটি গভীরভাবে আলোচনা করে না। ভার্চুয়াল পরিবেশ অথবা প্রোজেক্টগুলোকে আলাদা রাখতে এবং PyPI থেকে ডিপেন্ডেন্সিগুলো পরিচালনা করতে uv, venv বা conda-এর মতো টুল ব্যবহার করা যায়। একজন একেবারে নতুন ব্যবহারকারীর জন্য, নিঃসন্দেহে এটি একটি ন্যায্য আপস, কিন্তু জিয়া এবং উইসজের সাথে আপনার কাজ শেষ হয়ে গেলে এই বিষয়টি খতিয়ে দেখা যেতে পারে।
হাতে-কলমে শিক্ষা: অনুশীলন, কুইজ এবং ডিবাগিং
“পাইথন ইলাস্ট্রেটেড” শুধু কোড ছড়ানো একটি গল্পের বই নয়; এটি ইন্টারেক্টিভ অনুশীলন, কুইজ এবং আপনার বোধগম্যতা যাচাইয়ের ব্যবহারিক পরীক্ষায় পরিপূর্ণ একটি ওয়ার্কবুক। প্রায় প্রতিটি অধ্যায়ের শেষে এমন কিছু কাজ দেওয়া থাকে, যেখানে আপনাকে শুধু পড়ার পরিবর্তে ছোট ছোট স্ক্রিপ্ট লিখতে, পরিবর্তন করতে বা ডিবাগ করতে বলা হয়। সমাধানও দেওয়া থাকে, যাতে আপনি আপনার কোডকে একটি কার্যকর উদাহরণের সাথে তুলনা করতে পারেন এবং একই সমস্যা সমাধানের বিকল্প উপায়গুলো দেখতে পারেন।
এই ইন্টারেক্টিভ শৈলী বইটিকে স্ব-অধ্যয়ন এবং নির্দেশিত শিক্ষাদান উভয়ের জন্যই উপযোগী করে তোলে। আপনি যদি কোনো শিক্ষার্থী বা পরামর্শগ্রহীতার সাথে কাজ করেন, তাহলে অধ্যায়ের শেষের অনুশীলনগুলো দিতে পারেন এবং তারপর পাশাপাশি রেখে সেগুলোর সমাধান আলোচনা করতে পারেন। যেহেতু উদাহরণগুলো চরিত্র ও হাস্যরসের মাধ্যমে উপস্থাপন করা হয়, তাই এগুলোকে নীরস বাড়ির কাজের চেয়ে গল্পেরই একটি বর্ধিত অংশ বলে মনে হয়।
নতুনদের জন্য বইটি যে একটি দিক অসাধারণভাবে তুলে ধরেছে, তা হলো ডিবাগিং। অনেক প্রাথমিক পাঠ্যপুস্তকে ডিবাগিংয়ের কথা casually উল্লেখ করা হয়, কিন্তু “Python Illustrated”-এ এটি কীভাবে করতে হয় তা ব্যাখ্যা করার জন্য জায়গা দেওয়া হয়েছে। VS Code-এ ডিবাগার ব্যবহার করুনআবারও ইন্টারফেসের হাতে আঁকা ডায়াগ্রাম সহ। আপনি দেখতে পাবেন কোথায় ব্রেকপয়েন্ট বসাতে হবে, কীভাবে কোডের ধাপগুলো অনুসরণ করতে হবে, কোথায় ভেরিয়েবল পরীক্ষা করতে হবে এবং প্রোগ্রাম চলার সময় কীভাবে মানগুলোর পরিবর্তন পর্যবেক্ষণ করতে হবে।
এই স্তরের চাক্ষুষ ব্যাখ্যা সেই রহস্য উন্মোচন করে, যা অনেক নবাগত ‘পাওয়ার ইউজার টুল’ হিসেবে দেখে থাকেন। একবার আপনি জিয়াকে উইসজেকে কোনো ফাংশন স্টেপ ওভার করতে, বা কোনো শর্ত পূরণ হলে প্রোগ্রাম চালানো থামাতে শিখিয়ে দিতে দেখলে, শুধুমাত্র প্রিন্ট স্টেটমেন্টের উপর নির্ভর না করে নিজেই ডিবাগার ব্যবহার করে দেখার সম্ভাবনা আপনার অনেক বেশি বেড়ে যাবে।
বিরতি, মনোযোগের বিচ্যুতি এবং ‘পরের অংশে কিছু একটা অদ্ভুত গন্ধ পাওয়ার’ মতো বিষয়গুলো নিয়ে যে রসিকতা, তা নিছক কথার কথা নয়। এটি সহানুভূতি তৈরি করে এবং এই ধারণাটিকে স্বাভাবিক করে তোলে যে, ডিবাগিং শেখা, বা যেকোনো কোডিং শেখাই, একটি পুনরাবৃত্তিমূলক এবং ত্রুটিপূর্ণ প্রক্রিয়া। প্রথমবার কোনো কিছু কাজ না করলে, নতুনরা লেগে থাকবে কি না—এই বিষয়ে এই মনোভাবটি আশ্চর্যজনকভাবে পার্থক্য গড়ে দিতে পারে।
বর্ণনামূলক নির্দেশিকা থেকে শুরু করে কাঠামোবদ্ধ তথ্যসূত্রমূলক বই পর্যন্ত
যদিও “পাইথন ইলাস্ট্রেটেড” বইটি গল্প এবং ছবির ওপর ব্যাপকভাবে জোর দেয়, তবুও এমন আরও প্রথাগত, রেফারেন্স-ধাঁচের বইও রয়েছে যা আপনাকে পদ্ধতিগতভাবে, অধ্যায়-ভিত্তিক উপায়ে একেবারে শূন্য থেকে পাইথনে একটি ভালো মধ্যবর্তী স্তরে নিয়ে যায়। এই বইগুলো প্রায়শই ডাউনলোডযোগ্য পিডিএফ হিসেবে পাওয়া যায় এবং এগুলোর বিন্যাস একটি প্রমিত ধারাবাহিকতাকে কেন্দ্র করে করা হয়েছে: ইনস্টলেশন, সিনট্যাক্স, ডেটা টাইপ, কন্ট্রোল ফ্লো, ফাংশন, এক্সেপশন, ফাইল আই/ও এবং অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং।
এর একটি প্রতিনিধিত্বমূলক উদাহরণ হলো পাইথন ৩-এর একটি সচিত্র নির্দেশিকা, যা পাইথনের জনপ্রিয়তার মূল কারণ এবং অন্যান্য অনেক ভাষার তুলনায় এটি শেখা কেন সহজ, সেই বিষয়গুলো দিয়ে শুরু হয়। লেখক সহজ সিনট্যাক্স, ইনডেন্টেশন-ভিত্তিক কোড ব্লক, ডাইনামিক টাইপিং এবং সেমিকোলন, ব্রেস বা টাইপ ডিক্লারেশন নিয়ে ক্রমাগত লড়াই না করার মতো সুবিধাগুলোর ওপর জোর দিয়েছেন। এছাড়াও আপনি পাইথনের বৃহত্তর ইকোসিস্টেম দেখতে পাবেন: জ্যাঙ্গোর মতো ওয়েব ফ্রেমওয়ার্ক এবং বোতলডেটা সায়েন্স ও মেশিন লার্নিং লাইব্রেরি, যেমন স্কিকিট-লার্ন, টেনসরফ্লো এবং কেরাস, এবং এগুলোর পেছনের ওপেন-সোর্স কমিউনিটি।
এই আরও আনুষ্ঠানিক নির্দেশিকাগুলো ভাষার বৈশিষ্ট্যগুলোর অত্যন্ত বিশদ বিশ্লেষণ প্রদান করে, যা প্রায়শই সতর্কভাবে সাজানো সূচিপত্রের মাধ্যমে করা হয়। আপনি নিম্নলিখিত অধ্যায়গুলো দিয়ে শুরু করতে পারেন:
- পরিবেশ সেটআপJupyter Notebook এবং Spyder-এর মতো IDE ব্যবহার করে Anaconda বা কোর পাইথন ডাউনলোড ও ইনস্টল করা।
- সিনট্যাক্স অপরিহার্য বিষয়স্টেটমেন্ট, লাইন ব্রেক, ব্যাকস্ল্যাশসহ মাল্টি-লাইন স্টেটমেন্ট, ইন্ডেন্টেশন নিয়ম এবং কোড ব্লক
- শনাক্তকারী এবং কীওয়ার্ডপ্যাকেজ, মডিউল, ক্লাস, ফাংশন এবং প্রাইভেট ভেরিয়েবলের নামকরণের নিয়মাবলী
- ব্যবহারকারীর ইনপুট মাধ্যমে ইনপুট() ক্রিয়া
সেখান থেকে, বিষয়বস্তু সাধারণত পাইথনের মৌলিক ডেটা টাইপ এবং অপারেটরগুলোর একটি পর্যালোচনায় বিস্তৃত হয়। আপনি দেখতে পাবেন কীভাবে প্রথমে টাইপ ঘোষণা না করেই ভেরিয়েবল তৈরি করতে হয়, পাইথন কীভাবে রানটাইমে টাইপ নির্ধারণ করে, এবং কীভাবে সেই টাইপগুলো পরীক্ষা করতে হয়। প্রকার()এরপর আপনি নিউমেরিক টাইপ (int, float, long, complex), স্ট্রিং ও স্ট্রিং কনক্যাটেনেশন এবং সবশেষে লিস্ট, টাপল ও ডিকশনারির মতো কালেকশন সম্পর্কে জানবেন।
অপারেটর এবং নিয়ন্ত্রণ প্রবাহও একইভাবে পদ্ধতিগতভাবে বিবেচিত হয়। গাণিতিক অপারেটর (+, -, *, /, %, **), যৌক্তিক অপারেটর (and, or, not), তুলনা অপারেটর (==, !=, >, <, >=, <=) এবং সদস্যতা অপারেটর (in, not in) - এই সবগুলোই উদাহরণসহ ব্যাখ্যা করা হয় এবং তারপর ক্রমবর্ধমান জটিল শর্তসাপেক্ষ বিবৃতিতে ব্যবহার করা হয়। আরও সূক্ষ্ম যুক্তি মডেল করার জন্য আপনি সাধারণ if চেক, if/else ব্রাঞ্চ, চেইনড elif কন্ডিশন এবং নেস্টেড if স্ট্রাকচার অনুশীলন করেন।
একবার মৌলিক বিষয়গুলো বুঝে গেলে, এই নির্দেশিকাগুলো লুপ এবং পুনরাবৃত্তির দিকে মোড় নেয়। ফর লুপকে লিস্ট, টাপল, স্ট্রিং এবং ডিকশনারি ট্র্যাভার্স করার একটি উপায় হিসাবে, এবং সেইসাথে দ্বারা জেনারেট করা সিকোয়েন্সের মধ্যে ইটারেট করার একটি উপায় হিসাবে উপস্থাপন করা হয়েছে। পরিসর ()আপনি শর্ত-নিয়ন্ত্রিত পুনরাবৃত্তির জন্য while লুপ সম্পর্কে জানতে পারেন এবং দেখতে পান কিভাবে বিরতি এবং অবিরত আপনাকে for এবং while উভয় কাঠামোতেই সময়ের আগে বেরিয়ে যেতে বা নির্দিষ্ট পুনরাবৃত্তি এড়িয়ে যেতে দেয়।
অনুক্রম এবং এর বিভিন্ন প্রক্রিয়া, বিশেষ করে তালিকা, টাপল ও অভিধান নিয়ে দীর্ঘতর অধ্যায় রয়েছে। আপনি ইনডেক্সিং, স্লাইসিং, অ্যাপেন্ডিং, কনক্যাটেনেটিং, মেম্বারশিপ চেকিং, লেংথ নির্ণয় এবং লিস্ট সর্টিং-এর বিস্তারিত আলোচনা পাবেন। টাপলকে অপরিবর্তনীয় সিকোয়েন্স হিসেবে পরিচয় করিয়ে দেওয়া হয়েছে এবং উদাহরণের মাধ্যমে দেখানো হয়েছে যে এগুলোকে পরিবর্তন করার চেষ্টা করলে কী ঘটে। ডিকশনারিকে কী-এর সাথে ভ্যালুর ম্যাপিং হিসেবে বিবেচনা করা হয় এবং এর সাথে ব্যবহারিক মেথড যেমন... কী(), মান (), আইটেম (), অনুলিপি (), পরিষ্কার() এবং কী, ভ্যালু বা কী-ভ্যালু পেয়ারের ওপর পুনরাবৃত্তি করার জন্য ব্যবহৃত প্রচলিত রীতি।
ব্যতিক্রম, ফাইল এবং শক্তিশালী পাইথন প্রোগ্রাম
যেকোনো গুরুত্বপূর্ণ পাইথন শিক্ষার একটি মূল উপাদান হলো এরর (error) কীভাবে হ্যান্ডেল করতে হয় তা শেখা, এবং এই রেফারেন্স-নির্ভর বইগুলো এক্সেপশন হ্যান্ডলিং (exception handling)-কে অত্যন্ত গুরুত্ব দেয়। তারা বর্ণনা করেন যে এক্সেপশন কী—এমন একটি ঘটনা যা প্রোগ্রামের স্বাভাবিক প্রবাহকে ব্যাহত করে—এবং পাইথন কীভাবে এক্সেপশনকে অবজেক্ট হিসেবে তৈরি করে, যা কী ভুল হয়েছে সে সম্পর্কে তথ্য বহন করে।
আপনাকে try/except/else প্যাটার্নটির সম্পূর্ণ রূপের সাথে পরিচয় করিয়ে দেওয়া হয় এবং নির্দিষ্ট ধরনের এক্সেপশন কীভাবে ধরতে হয় তা দেখানো হয়। উদাহরণগুলি একটি প্রদর্শন করে জিরো ডিভিশনইরির শূন্য দিয়ে ভাগ করার সময়, একটি নাম ত্রুটি কখন একটি অসংজ্ঞায়িত ভেরিয়েবলকে রেফারেন্স করতে হয় এবং বিভিন্ন সমস্যা সমাধানের জন্য কীভাবে একাধিক এক্সেপ্ট ব্লক লিখতে হয়, সে সম্পর্কে আলোচনা করা হয়েছে। এছাড়াও বেস অ্যারে ধরার বিষয়টিও এতে অন্তর্ভুক্ত রয়েছে। ব্যতিক্রম যখন আপনি এখনও জানেন না কোন কোন ব্যতিক্রম দেখা দিতে পারে, তখন সাধারণ ব্যবস্থাপনার জন্য এই টাইপটি ব্যবহার করুন।
সেখান থেকে আলোচনাটি সাধারণত স্বাভাবিকভাবেই পাইথন ফাইল হ্যান্ডলিংয়ের দিকে গড়ায়। আপনি দেখতে পাচ্ছেন কিভাবে ফাইলগুলি খুলতে হয় খোলা () ফাংশন, বিভিন্ন মোড ব্যবহার করে যেমন পড়া (r), লিখুন (w), যুক্ত করুন (a) এবং বাইনারি রূপ যেমন rb or wbফাইল অবজেক্টের অ্যাট্রিবিউটগুলো (নাম, মোড, বন্ধ) অন্বেষণ করা হয়, সেইসাথে পদ্ধতি যেমন পড়ুন (), লিখুন (), বলুন () এবং বন্ধ ().
আপনি অপারেটিং-সিস্টেম স্তরে ফাইল পরিচালনা করতেও শিখবেন os মডিউল। সহজ স্ক্রিপ্ট দেখায় কিভাবে একটি ফাইলের নাম পরিবর্তন করতে হয় os.rename() অথবা এটি দিয়ে সরিয়ে ফেলুন os.remove()এবং বর্তমান রিড পজিশন কীভাবে চেক করতে হয় বলুন ()আপনার কোড এবং ফাইল সিস্টেমের মধ্যে ডেটা কীভাবে নিরাপদ ও অনুমানযোগ্য উপায়ে চলাচল করে, তা বোঝার উপরই সর্বদা জোর দেওয়া হয়।
একত্রে, এক্সেপশন এবং ফাইল হ্যান্ডলিং আপনাকে এমন প্রোগ্রাম তৈরি করার সরঞ্জাম দেয় যা শুধু আদর্শভাবে কাজই করে না, বরং অপ্রত্যাশিত কিছু ঘটলে সুন্দরভাবে ব্যর্থও হয়। উদাহরণস্বরূপ, কোনো ফাইল বিদ্যমান না থাকলে আপনার স্ক্রিপ্টটি ক্র্যাশ করে এমন একটি স্ট্যাক ট্রেস দেখানোর পরিবর্তে যা ব্যবহারকারীরা বুঝতে পারবে না, আপনি ফাইল খোলার সাথে try/except ব্যবহার করে একটি সহজবোধ্য বার্তা প্রদর্শন করতে পারেন।
ফাংশন, ল্যাম্বডা এবং ফাংশনাল-স্টাইল টুলস
একবার সিনট্যাক্স ও ফ্লো কন্ট্রোল সম্পর্কে ধারণা হয়ে গেলে, পরবর্তী প্রধান মাইলফলক হলো ফাংশনের মাধ্যমে পুনঃব্যবহারযোগ্য কোড লেখা। এই ক্ষেত্রের বইগুলিতে ফাংশন সংজ্ঞায়িত করার বিষয়টি ধাপে ধাপে ব্যাখ্যা করা হয়েছে। Defপ্রচলিত রীতি অনুযায়ী তাদের নামকরণ করে, প্যারামিটার পাস করে এবং মান ফেরত দিয়ে প্রত্যাবর্তনআপনি প্রথমে বার্তা প্রিন্ট করা, যোগফল গণনা করা বা মান রূপান্তর করার মতো ফাংশনের প্রাথমিক উদাহরণ তৈরি করবেন, তারপর একাধিক প্যারামিটারযুক্ত আরও জটিল ফাংশনের দিকে অগ্রসর হবেন।
প্যারামিটারের আচরণ বিস্তারিতভাবে আলোচনা করা হয়েছে, যার মধ্যে ডিফল্ট আর্গুমেন্ট এবং পাইথন কীভাবে রেফারেন্সের মাধ্যমে আর্গুমেন্ট পাস করে তা অন্তর্ভুক্ত রয়েছে। আপনি দেখতে পাচ্ছেন কীভাবে ডিফল্ট ভ্যালু ফাংশন কলকে সহজ করে তুলতে পারে, এবং কীভাবে একটি ফাংশনের ভিতরে একটি লিস্ট পরিবর্তন করলে বাইরের মূল লিস্টটি প্রভাবিত হয়, কারণ উভয়ই একই অন্তর্নিহিত অবজেক্টের রেফারেন্স। এই বিষয়টি প্রায়শই নতুনদের অবাক করে, তাই বইগুলোতে হেল্পার ফাংশন দ্বারা লিস্ট পরিবর্তনের আগে ও পরের সুস্পষ্ট উদাহরণ দেওয়া হয়েছে।
এই চিকিৎসা সাধারণত বেনামী ফাংশন ব্যবহার করে প্রসারিত হয়। ল্যামডা অভিব্যক্তি আপনি শিখবেন কিভাবে ছোট ইনলাইন ফাংশন লিখতে হয় যেমন ল্যাম্বডা a, b, c: a + b + c এবং সেগুলোকে ভেরিয়েবলে অ্যাসাইন করুন, তারপর নামযুক্ত ফাংশনের মতোই সেগুলোকে কল করুন। সেখান থেকে, আপনাকে হায়ার-অর্ডার ফাংশনের সাথে পরিচয় করিয়ে দেওয়া হয়, যা অপারেশনগুলোকে সংক্ষিপ্তভাবে প্রকাশ করার জন্য ল্যাম্বডা ব্যবহার করে।
তিনটি কার্যকরী শৈলীর সরঞ্জাম বিশেষভাবে উল্লেখযোগ্য: মানচিত্র (), ছাঁকনি() এবং হ্রাস (). Map এক বা একাধিক সিকোয়েন্সের প্রতিটি উপাদানের উপর একটি ফাংশন প্রয়োগ করে এবং ফলাফলের একটি নতুন সিকোয়েন্স ফেরত দেয়। Filter শুধুমাত্র সেই উপাদানগুলো রাখে, যেগুলোর জন্য একটি প্রেডিকেট True রিটার্ন করে। Reduce (from ফাংশন টুল) একটি বাইনারি ফাংশন ব্যবহার করে কোনো অনুক্রমের উপাদানগুলোকে বারবার একত্রিত করে এবং অবশেষে একটি একক মান ফেরত দেয়।
সুনির্দিষ্ট উদাহরণ এই ধারণাগুলোকে মূর্ত করে তোলে। আপনি একটি তালিকার প্রতিটি উপাদানকে বর্গ করতে পারেন ম্যাপ(ল্যাম্বডা x: x * x, সংখ্যা)শুধুমাত্র জোড় সংখ্যাগুলো ফিল্টার করে বাদ দিন filter(lambda a: a % 2 == 0, nums)অথবা তালিকার সমস্ত উপাদানের গুণফল গণনা করুন reduce(lambda a, b: a * b, nums)এই প্যাটার্নগুলো এমন সব ধারণার প্রতিধ্বনি করে যা পরবর্তীতে ডেটা প্রসেসিং, অ্যানালিটিক্স এবং মেশিন লার্নিং পাইপলাইনে দেখা যায়।
অবশেষে, লিস্ট কম্প্রিহেনশন লিস্ট তৈরি ও রূপান্তরের জন্য একটি সংক্ষিপ্ত ও পাঠযোগ্য সিনট্যাক্স প্রদান করে এই ফাংশনাল টুলবক্সটিকে সম্পূর্ণ করে। আপনি সরল রূপগুলি দেখতে পান যেমন বর্গক্ষেত্রগুলির একটি তালিকা তৈরি করতে, যেমন শর্তসাপেক্ষে বোধগম্যতা জোড় সংখ্যা ফিল্টার করতে, এবং এমনকি আকার-ব্যক্তি সমন্বয়ের মতো ক্রস প্রোডাক্ট তৈরি করার জন্য নেস্টেড কম্প্রিহেনশনও ব্যবহার করা যায়।
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং, ইনহেরিটেন্স এবং পলিমরফিজম
স্ক্রিপ্টের গণ্ডি পেরিয়ে আরও বড় ও রক্ষণাবেক্ষণযোগ্য অ্যাপ্লিকেশন তৈরির জন্য অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) অপরিহার্য হয়ে ওঠে, এবং এই পাইথন গাইডগুলো OOP-এর ধারণাগুলোর একটি পূর্ণাঙ্গ বিবরণ প্রদান করে। আপনি ক্লাসকে ব্লুপ্রিন্ট হিসেবে এবং অবজেক্টকে সেই ক্লাসের ইনস্ট্যান্স হিসেবে শুরু করেন, তারপর এর সাথে অ্যাট্রিবিউট, মেথড, কনস্ট্রাক্টর, প্রোপার্টি এবং বিশেষ মেথড যুক্ত করেন।
মৌলিক ক্লাস সংজ্ঞাগুলো দেখায় কীভাবে ডেটা এবং আচরণ উভয়ই অন্তর্ভুক্ত করতে হয়। উদাহরণস্বরূপ, একটি ব্যক্তি ক্লাসে নাম, বয়স ও লিঙ্গের মতো অ্যাট্রিবিউট এবং মেথড থাকতে পারে, যেমন— দাঁড়ান() or বসা()আপনি দেখতে পাচ্ছেন কিভাবে অবজেক্ট তৈরি করতে হয় (ব্যক্তি১ = ব্যক্তি()), ডট নোটেশন ব্যবহার করে অ্যাট্রিবিউট অ্যাক্সেস করুন, এবং সংজ্ঞায়িত করুন __init__ যখনই কোনো নতুন ইনস্ট্যান্স তৈরি করা হয়, তখন প্রাথমিক অবস্থা নির্ধারণের জন্য কনস্ট্রাক্টর ব্যবহৃত হয়।
ক্লাস অ্যাট্রিবিউট এবং ইনস্ট্যান্স অ্যাট্রিবিউটের মধ্যে পার্থক্য বিশদভাবে আলোচনা করা হয়েছে। ক্লাস অ্যাট্রিবিউট, যা সরাসরি ক্লাস বডিতে সংজ্ঞায়িত করা হয়, তা সমস্ত ইনস্ট্যান্স জুড়ে শেয়ার করা হয়, যেমন একটি ব্যক্তির সংখ্যা যা ট্র্যাক করে কতগুলো অবজেক্ট তৈরি করা হয়েছে। ইনস্ট্যান্স অ্যাট্রিবিউট, যা সাধারণত এর মধ্যে নির্ধারিত হয় __init__ অথবা অন্যান্য পদ্ধতির মাধ্যমে স্ব, এগুলো স্বতন্ত্র বস্তুর অন্তর্গত এবং প্রতিটির ক্ষেত্রে ভিন্ন হতে পারে।
এরপরে আসে প্রোপার্টি এবং অ্যাক্সেস মডিফায়ারের মাধ্যমে এনক্যাপসুলেশন এবং নিয়ন্ত্রিত অ্যাক্সেস। আপনি ব্যবহার করতে শিখবেন @সম্পত্তি এবং মান অ্যাসাইন করার সময় সেগুলোকে যাচাই বা রূপান্তর করার জন্য সংশ্লিষ্ট সেটার ডেকোরেটর। এর একটি ক্লাসিক উদাহরণ হলো মেয়াদ শেষ হওয়ার মাসের ফিল্ড, যা বাইরের কোড যে মানই সেট করার চেষ্টা করুক না কেন, স্বয়ংক্রিয়ভাবে ১ থেকে ১২-এর মধ্যে সীমাবদ্ধ থাকে। এটি আপনার অবজেক্টগুলোতে অবৈধ অবস্থা প্রবেশ করা থেকে বিরত রাখে।
নামকরণের নিয়ম ব্যবহার করে অ্যাক্সেস মডিফায়ার ব্যাখ্যা করা হয়: পাবলিক অ্যাট্রিবিউটের ক্ষেত্রে সাধারণ নাম, প্রোটেক্টেড অ্যাট্রিবিউটের ক্ষেত্রে শুরুতে একটি আন্ডারস্কোর এবং প্রাইভেট অ্যাট্রিবিউটের ক্ষেত্রে দুটি আন্ডারস্কোর ব্যবহার করা হয়। যদিও পাইথন কিছু ভাষার মতো অ্যাক্সেস কন্ট্রোল প্রয়োগ করে না, এই প্যাটার্নগুলো উদ্দেশ্য প্রকাশ করে এবং প্রাইভেট অ্যাট্রিবিউটের ক্ষেত্রে নেম-ম্যাংলিং আচরণকে প্রভাবিত করে।
সম্পর্কিত ক্লাসগুলোর মধ্যে সাধারণ কার্যকারিতা ভাগ করে নেওয়ার একটি উপায় হিসেবে ইনহেরিটেন্স প্রবর্তন করা হয়েছে। আপনি একটি সাধারণ দেখতে পারেন বাহন সাধারণ অ্যাট্রিবিউট সহ বেস ক্লাস যেমন নাম এবং রঙ, এবং একটি সাইকেল সাবক্লাস যা ঐ অ্যাট্রিবিউটগুলো উত্তরাধিকার সূত্রে পায় এবং সাথে নিজস্ব অ্যাট্রিবিউটও যোগ করে। মূল্য ক্ষেত্র। উদাহরণগুলি দেখায় কিভাবে চাইল্ড থেকে প্যারেন্ট কনস্ট্রাক্টরকে কল করতে হয় (Vehicle.__init__(self, name, color)এবং তারপরে শিশু-নির্দিষ্ট প্রারম্ভিকীকরণের মাধ্যমে প্রসারিত করুন।
বিষয়টি শুধু সাধারণ একক উত্তরাধিকারের মধ্যেই সীমাবদ্ধ নয়। আপনি একই প্যারেন্ট থেকে উত্তরাধিকার সূত্রে প্রাপ্ত একাধিক চাইল্ড ক্লাসের সম্মুখীন হবেন, এমনকি মাল্টিপল ইনহেরিটেন্সেরও, যেখানে একটিমাত্র ক্লাস একাধিক প্যারেন্ট থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, যেমন একটি গাড়ী উভয় থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাস বাহন এবং সেদাবাস্তব ডিজাইনের ক্ষেত্রে মাল্টিপল ইনহেরিটেন্স কিছুটা জটিল হলেও, এটিকে বাস্তবে কাজ করতে দেখলে স্পষ্ট হয় যে পাইথন কীভাবে বিভিন্ন প্যারেন্ট ক্লাসের মধ্যে মেথড খোঁজার কাজটি করে।
পলিমরফিজম তখন দুটি প্রধান প্যাটার্নের সাথে যুক্ত থাকে: মেথড ওভাররাইডিং এবং বিশেষ মেথডের মাধ্যমে অপারেটর ওভারলোডিং। মেথড ওভাররাইডিং তখন দেখা যায় যখন কোনো সাবক্লাস প্যারেন্ট ক্লাসে সংজ্ঞায়িত কোনো মেথডের নিজস্ব ইমপ্লিমেন্টেশন প্রদান করে, যেমন একটি ম্যানেজার শ্রেণী পুনঃসংজ্ঞায়ন প্রিন্টডিটেইলস() থেকে কর্মচারীঅপারেটরের উপর অতিরিক্ত কাজের চাপ বিশেষ পদ্ধতির মাধ্যমে প্রদর্শন করা হয়, যেমন— __যোগ করুন__, __gt__ এবং __str__, যার ফলে ক্লাস ইনস্ট্যান্সগুলো এক্সপ্রেশনে অংশগ্রহণ করতে পারে যেমন ব্যক্তি১ + ব্যক্তি২ অথবা প্রিন্ট করার সময় পাঠযোগ্য স্ট্রিং উপস্থাপনা তৈরি করা।
OOP-এর এই ভিত্তি আপনাকে আরও জটিল সিস্টেম ডিজাইন করার জন্য প্রস্তুত করে, যেখানে সম্পর্কিত অবজেক্টগুলো কোড শেয়ার করে, সীমাবদ্ধতা আরোপ করে এবং আপনার অ্যাপ্লিকেশনের বাকি অংশের কাছে একটি পরিচ্ছন্ন ইন্টারফেস উপস্থাপন করে। “পাইথন ইলাস্ট্রেটেড”-এর সহজ ও গল্প-ভিত্তিক সূচনা শৈলীর সাথে মিলিত হয়ে এটি নিশ্চিত করে যে, চরিত্রগুলো সরে যাওয়ার পরেও আপনি আপনার নিজের প্রোগ্রামগুলোকে একটি শক্তিশালী উপায়ে গঠন করতে সক্ষম হবেন।
একত্রে, গল্পনির্ভর “পাইথন ইলাস্ট্রেটেড” এবং আরও বিশ্বকোষীয় পিডিএফ-ধাঁচের গাইডগুলো শেখার একটি শক্তিশালী পথ তৈরি করে: আপনি মজাদার গল্প এবং চাক্ষুষ স্বজ্ঞা দিয়ে শুরু করেন, তারপর ধীরে ধীরে পাইথন সিনট্যাক্স, স্ট্যান্ডার্ড প্যাটার্ন এবং সেরা অনুশীলনের সম্পূর্ণ পরিসরে প্রবেশ করেন; ভেরিয়েবল ও লুপ থেকে শুরু করে এক্সেপশন, ফাইল আই/ও, ফাংশনাল হেল্পার, অবজেক্ট, ইনহেরিটেন্স এবং পলিমরফিজম পর্যন্ত সবকিছুই এর অন্তর্ভুক্ত। যদি আপনি ধৈর্য ধরে এগুলোর কাছে যান—সেই একই ধৈর্য, যার কথা জিয়া উইজকে বারবার মনে করিয়ে দেয়—তাহলে আপনি শুধু টিউটোরিয়াল অনুসরণ করতেই সক্ষম হবেন না, বরং নিজের উল্লেখযোগ্য পাইথন কোড পড়তে, বুঝতে এবং অবশেষে লিখতেও সজ্জিত হবেন।
