Posts

[Python] Boolean Data Type

সি++ এর মতোই এখানেও বুলিয়ান টাইপ রয়েছে। পার্থক্য শুধু এর ভ্যালুতে। সি++ এ বুলিয়ান ভ্যারিয়েবলের ভ্যালু হচ্ছে true অথবা false, পাইথনে হলো True অথবা False. x = True y = False print ( x , type ( x )) print ( y , type ( y )) আউটপুট: True <class 'bool'> False <class 'bool'>

[Python] Text Data Type

সি/সি++ এ একটাই এরকম টাইপ ছিলো, সেটা হলো 8 bit সাইজের char (Character). স্ট্রিং এর জন্য ক্যারেক্টারের অ্যারে নিতে হতো। পাইথনে সিঙ্গেল ক্যারেক্টার বলে কিছু নাই। এখানে আছে বিল্ট ইন String Class. নিচের কোডটি দেখুন: name = "Nayeem Mahmood" section = 'A' print ( name + ", type:" , type ( name )) print ( section + ", type:" , type ( section )) এর আউটপুট এমন: Nayeem Mahmood, type: <class 'str'> A, type: <class 'str'> ক্যারেক্টার সিঙ্গেল হোক কিংবা মাল্টিপল, টাইপ চেঞ্জ হয়নি। String class রিলেটেড আরও অনেক দরকারি ফাংশান রয়েছে, যেসব নিয়ে Data Structure সেকশানে আলোচনা করবো ইনশা আল্লাহ্‌। 

[Python] Numeric Data Type

তিনটি আলাদাভাবে নাম্বার রাখা যায় পাইথনে।   int (Integers বা পূর্ণ সংখ্যা)   float (Floating Point Numbers বা দশমিক সংখ্যা)   complex (Imaginary Numbers বা অবাস্তব সংখ্যা) আশা করছি, প্রথম দুটির সাথে আপনারা পরিচিত। কারণ এগুলো সি/সি++ এ আছে। চলুন এদের উদারহণ দেখে নিই। a = 100 b = 33.46 c = 1 - 5 j print ( f "a = {a}, type = {type(a)}" ) print ( f "b = {b}, type = {type(b)}" ) print ( f "c = {c}, type = {type(c)}" ) এর আউটপুট হবে এমন: a = 100, type = <class 'int'> b = 33.46, type = <class 'float'> c = (1-5j), type = <class 'complex'> সি/সি++ এ ডাটা টাইপের সাইজ ফিক্সড ছিলো, আর তাই ডাটা ওভারফ্লো হবার আশঙ্কাও ছিলো। কিন্তু পাইথনের এই বিল্ট ইন ডাটা টাইপ গুলোর প্রত্যেকটিই একেকটা Class. আর তাই, ওভারফ্লো হবার সুযোগ নাই। ডাটার লেন্থের উপর ভিত্তি করে ডাটার সাইজও একটা ফিক্সড পয়েন্ট থেকে বাড়তে শুরু করবে।

[Python] Data Types

Python এ বেশ কয়েক রকমের ডাটা টাইপ রয়েছে। তবে সবগুলো নিয়ে এখানে আলোচনা করবো না। এই আলোচনার মধ্যে গুরুত্বপূর্ণ যেসব ডাটা টাইপ বাদ যাবে, সেগুলো Data Structure সেকশানে আলোচনা করবো ইনশা আল্লাহ্‌।

[Python] Introduction

আসসালামু আলাইকুম ওয়ারাহমাতুল্লাহ। আশা করি, আল্লাহ্‌র রহমাতে ভালো আছেন। এটা একদম বিগিনার লেভেলের কোনো গাইড না। প্রোগ্রামিং সম্পর্কে যাদের আইডিয়া আছে, বিশেষ করে যারা 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: আমি জানি না, আমার এই লিখা কেউ পড়বে কি না। যদি কেউ পড়ে থাকেন, তবে আপনার ম

[Python] Variables

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 হয়ে গেলো। আরেকটা মজার সিনট্যাক্স দেখাই। একটা স্টেটমেন্ট দিয়ে মাল্টিপল ভেরি

[GUIDE] Faster I/O Method in C/C++

যারা কোনো একটা প্রোগ্রামের Run Time নিয়ে বিশেষভাবে উদ্বিগ্ন থাকো, বিশেষ করে তাদের জন্যেই এই আর্টিকেল । মূল আলোচনায় যাওয়ার আগে Sphere Online Judge এর INTEST  প্রব্লেমটা সলভ করে আসো । যদি প্রব্লেমটা সলভ করতে না পারো, তাহলে পুরো আর্টিকেলটা পড়ে ফেলো । আর যদি প্রব্লেমটা সলভ করতে পারো, তাহলে তোমার প্রোগ্রামের Run Time টা একটু দেখে নাও । মূল আলোচনায় আসা যাক এবার । আমি যদি C তে কোড করি, তাহলে কোডটা এমন হতে পারে : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main () { int n , k , t , c = 0 ; scanf ( "%d%d" , & n , & k ); while ( n -- ) { scanf ( "%d" , & t ); if ( t % k == 0 ) { c ++ ; } } printf ( "%d\n" , c ); return 0 ; } উপরের কোডটা AC হবে কি না, আমি জানি না । কারণ, আমি এই কোড সাবমিট দেইনি । যারা C++ এর cin এবং cout অবজেক্ট দু'টি নিয়ে কাজ করতে অভ্যস্ত, তারা উপরের কোডটাই এভাবে লিখতে পারে : 1 2 3