Python এ বেশ কয়েক রকমের ডাটা টাইপ রয়েছে। তবে সবগুলো নিয়ে এখানে আলোচনা করবো না। এই আলোচনার মধ্যে গুরুত্বপূর্ণ যেসব ডাটা টাইপ বাদ যাবে, সেগুলো Data Structure সেকশানে আলোচনা করবো ইনশা আল্লাহ্।
শুরুতেই এই প্রব্লেমটা সহজ ভাষায় ব্যাখ্যা করার চেষ্টা করি । Figure : 1 খেয়াল করো । একটি সমদ্বিবাহু ত্রিভুজের ভূমি b এবং উচ্চতা h দেওয়া আছে । প্রথমে এর তিনটি কোণকে সমদ্বিখণ্ডিত করতে হবে । সমত্রিখণ্ডক তিনটির ছেদবিন্দু (চিত্রে O বিন্দু)-কে কেন্দ্র করে এমন একটি বৃত্ত আঁকতে হবে যেটি ত্রিভুজের ৩টি বাহুকে স্পর্শ করে । তারপর আরও একটি বৃত্ত (এই রঙের ) আঁকতে হবে যেটি ত্রিভুজের সমান দুই বাহু (চিত্রে AB এবং AC ) কে এবং তার নিচের বৃত্তকেও (এই রঙের ) স্পর্শ করে । এর উপরের বৃত্তগুলোও এভাবে এঁকে যেতে হবে । কিন্তু এভাবে তো অসীম সংখ্যক বার যাওয়া যাবে; তাহলে থামবো কোথায় ? এই প্রশ্নের উত্তর মূল স্টেটমেন্টেই দেওয়া আছে । এই যে বৃত্তের একটা Stack তৈরি হচ্ছে, যে বৃত্তের ব্যাসার্ধ 0.000001 এর চেয়ে ছোট হয়ে যাবে, তখনই আমাদের থেমে যেতে হবে ! প্রব্লেমের আউটপুটে দিতে হবে Stack এর সবগুলো বৃত্তের পরিধির যোগফল । তো, বৃত্তের পরিধি হিসেব করতে হলে আমাদের কী জানতে হবে ? অবশ্যই বৃত্তের ব্যাসার্ধ । কীভাবে আমরা এই বৃত্তগুলোর ব্যাসার্ধ বের করতে পারি ? প্রথমে আমরা Figure : 1 এর ΔABC থেকে ΔABD কে আলাদা করে
C/C++ এ ভেরিয়েবল ডিক্লেয়ার করার জন্য ভেরিয়েবলের নামের আগে ডাটা টাইপ লিখতে হয়; কিন্তু পাইথনে সেটার প্রয়োজন হয় না। যেমন: num = 10 tax = 2.5 name = "Nayeem Mahmood" এখানে ৩টা ভেরিয়েবল ডিক্লেয়ার করে ইনিশিয়াল ভ্যালু এসাইন করে দিলাম। এরা কে কোন টাইপের, সেটা চাইলেই আমরা জানতে পারি। print ( type ( num )) print ( type ( tax )) print ( type ( name )) উপরের কোডটা যদি রান করি, তাহলে এরকম আউটপুট পাবো আমরা: <class 'int'> <class 'float'> <class 'str'> এই ডাটা টাইপগুলো নিয়ে আমরা পরে আলোচনা করবো। আরেকটা মজার ব্যাপার হলো (কখনো কখনো বিপদজনকও হতে পারে :p), পাইথনে ভেরিয়েবলের টাইপ চেঞ্জ করা যায় রান টাইমের মধ্যেই। কিন্তু C/C++ এ এটা সম্ভব না। যেমন, আমি উপরের কোডগুলো সহ যদি নিচের কোডটা রান করি, tax = "No more tax!" print ( type ( tax )) তাহলে আউটপুট পাবো এরকম: <class 'str'> দেখলে তো, tax এর টাইপ float থেকে str হয়ে গেলো। আরেকটা মজার সিনট্যাক্স দেখাই। একটা স্টেটমেন্ট দিয়ে মাল্টিপল ভেরি
আসসালামু আলাইকুম ওয়ারাহমাতুল্লাহ। আশা করি, আল্লাহ্র রহমাতে ভালো আছেন। এটা একদম বিগিনার লেভেলের কোনো গাইড না। প্রোগ্রামিং সম্পর্কে যাদের আইডিয়া আছে, বিশেষ করে যারা C/C++ সম্পর্কে জানে, তাদের জন্য এই গাইড উপকারী হবে বলে মনে করি। এই গাইডগুলোতে প্রোগ্রামিং কনসেপ্টগুলো নিয়ে খুব বেশি গভীর আলোচনা হবে না। C++ এ ক্লাস ডিক্লেয়ার করতে পারা মানুষ যদি জানতে চায় একই কাজ Python এ কীভাবে করা যায়, তাহলে এই গাইড তার উপকারে আসতে পারে। মূলত, এখানে C/C++ এর সাথে Python এর Syntactic Differences নিয়েই বেশি আলোচনা করবো। P.S. 1: কম্পিটিটিভ প্রোগ্রামারগণ এর চাহিদা পূরণ করার আশা রাখি। বিভিন্ন Data Structures, Algorithm (C++ STL এর বিকল্প) নিয়ে আলোচনা করার ইচ্ছা আছে। P.S. 2: Python এর প্রচুর লাইব্রেরি রয়েছে, যার ফাংশানও অসংখ্য। জনপ্রিয় লাইব্রেরিগুলো নিয়েও লিখার ইচ্ছা আছে। P.S. 3: এই গাইডগুলোকে রেফারেন্স বলা যেতে পারে। আমার নিজের জন্যেই আসলে এখানে লিখছি। কখনো কোনো কিছুর প্রয়োজন পড়লে এখানে এসে যাতে মনে করে নিতে পারি। P.S. 4: আমি জানি না, আমার এই লিখা কেউ পড়বে কি না। যদি কেউ পড়ে থাকেন, তবে আপনার ম
Comments
Post a Comment