কি খবর বন্ধুরা? আসা করি তোমরা সবাই ভালো আছো। আগের পর্বে তুমি দেখেছ কিভাবে পাইথন ইন্সটল করবে এবং তুমি তোমার প্রথম পাইথন প্রোগ্রাম লিখেছিলে।তবে ভ্যারিয়েবল সম্পর্কে বলা হয়নি ।
আজকে আমরা নতুন দুটি বিষয় নিয়ে জানব। একটা হচ্ছে ভ্যারিয়বল এবং আরেকটা হচ্ছে ডাটা টাইপ। তো শুরু করা যাক।
তুমি যদি আগের পর্ব না পড়ে থাক তাহলে এখান থেকে পড়ে নিও।
ভ্যারিয়েবল
ভ্যারিয়েবল হলো কম্পিউটারের মেমরির কোন একটা জায়গা। এখানে আমরা বিভিন্ন ধরণের ডাটা রাখতে পারি। যেমনঃ স্ট্রিং, ইন্টিজার ইত্যাদি।
পাইথনে ভ্যারিয়েবল ডিক্লেয়ার করে এভাবেঃ
variable_name = variable_data
বুঝতেই পারছো যে বামদিকে আমরা ভ্যারিয়েবলের নাম লিখব এবং ডানপাশে আমরা ভ্যারিয়েবলের ডাটা লিখব। তবে ভ্যারিয়েবল এর নাম দেয়ার সময় সতর্ক থাকতে হবে যাতে ভ্যারিয়েবল এর নাম যেন “Invalid” না হয়। নাহলে সিনট্যাক্স এরর আসবে। পাইথনের ভ্যারিয়েবল এর নামকরণ এর নিয়ম নিচে উল্লেখ করছিঃ
- ভ্যারিয়েবল এর নাম অবশ্যই লেটার(A-Z, a-z) বা আন্ডারস্কোর দিয়ে শুরু হবে। যেমনঃ x, test, _
- ভ্যারিয়েবল এর নাম সংখ্যা দ্বারা শুরু হবে না। যেমনঃ 1variable এই নামটি Invalid. এই নাম দিয়ে ভ্যারিয়েবল বানালে Syntax Error খাবা।
- ভ্যারিয়েবল এর নামে শুধু ইংরেজি অ্যালফাবেট(A-Z, a-z), ইংরেজি সংখ্যা(0-9) এবং আন্ডারস্কোর থাকবে। যেমনঃ tala_baba69
- ভ্যারিয়েবল এর নাম কেস-সেনসিটিভ। মানে লেটার একই হলেও বড় হাতের অক্ষর আর ছোট হাতের অক্ষর ভিন্ন হিসেবে ধরা হবে। যেমনঃ ABC আর abc দুইটা আলাদা ভ্যারিয়েবল হবে।
আবার পাইথনের কিছু রিজার্ভড কিওয়ার্ড আছে যেগুলা ভ্যারিয়েবল এর নাম হিসেবে ব্যবহার করা যায় না। নিচে তার তালিকা দেয়া হলোঃ
আমরা এখন ভ্যারিয়েবল নিয়ে অনেক জানলাম এখন ভ্যারিয়েবল তৈরি করে চলো। প্রথমে আমরা স্ট্রিং ভ্যারিয়েবল তৈরি করব। আমরা আগের পোস্টে দেখছি যে এই ধরণের ডাটা টাইপের ডাটাকে ‘ বা ” দ্বারা Wrap করতে হবে। নিচে আমি একটি স্ট্রিং ভ্যারিয়েবল তৈরি করেছি। আবার প্রিন্ট ফাংশন ব্যবহার করে এই ভ্যারিয়েবল প্রিন্ট করেছি। তোমরা চাইলে শুধু ভ্যারিয়েবল এর নাম টাইপ করেই ভ্যারিয়েবল এর ডাটা অ্যাক্সেস করতে পারো। কিন্তু পরে যখন আমরা ফাইল রান করব তখন কিন্তু ভ্যারিয়েবল ডাটা দেখা যায় না।
ধরো আমরা ওই ভ্যারিয়েবল এর মান আরেকটা ভ্যারিয়েবল এ বসাব, তাহলে এটা নিচের মতো করে করতে পারি। তুমি যেখানে ভ্যারিয়েবল এর নাম লিখবে সেখানে ওই ভ্যারিয়েবল এর মান চলে আসবে।
এখন আমি চাই যে একটা ভ্যারিয়েবল এ আমি “I’m learning Python. It’s not a “snake””. এটা কিভাবে করব? এবার আসছে ইস্কেপ এর ধারণা। আমরা ” এর বদলে ” লিখব। আবার ‘ এর বদলে ‘ লিখব। তবে যদি এমন হয় যে তুমি স্ট্রিং Wrap করেছ ” দিয়ে কিন্তু ভিতরে ‘ ব্যবহার করবে তবে ইস্কেপ করা লাগবে না। আবার ‘ ব্যবহার করলে ” ইস্কেপ করা লাগবে না। নিচে কিছু উদাহরণ দিচ্ছিঃ
কথা হচ্ছে ” বা ‘ দিয়ে Wrap করলে সরাসরি ওই চিহ্ন কেন বাক্যের বা স্ট্রিং এর ভিতর লেখা যায় না? কারণ পাইথন যখনই ” বা চিহ্ন পায় তখন পরের ” বা ‘ পর্যন্ত যা আছে ‘ তা স্ট্রিং হিসেবে ধরে নেয়। ধরি আমরা এভাবে একটা স্ট্রিং ডিক্লেয়ার করলামঃ string = “This will cause “Syntax” error.”।
এখন এই স্ট্রিং এ আমরা ইস্কেপিং করি নাই। এখন পাইথন ইন্টারপ্রেটার প্রথমে ” পেল। তাহলে পরের ” পর্যন্ত অপেক্ষা করবে। ঠিক S এর আগে ” পাওয়ার পর একটা নতুন স্ট্রিং তৈরি হবে “This will cause”. তারপর আসবে Syntax লেখাটার পরে আসবে “error.”। মাঝখানে এভাবে Syntax লেখাটা পাইথনের সিনট্যাক্স অনুযায়ী Invalid। ঘটনাটা অনেকটা এরকম হবেঃ
আমরা যদি Syntax এর দুই দিকে + চিহ্ন দিই তখন পাইথন একে ভ্যারিয়েবল মনে করবে। কারণ + চিহ্ন দিয়ে পাইথন এ স্ট্রিং জোড়া দেয়া হয়।তখন পাইথন Syntax নামের ভ্যারিয়েবল খুঁজবে।
কিন্তু আমরা Syntax নামে কোন ভ্যারিয়েবল ডিক্লেয়ার করিনি বলে এবার NameError নামে নতুন এক ধরণের এরর দেখাবে। আমরা যদি Syntax ভ্যারিয়েবল ডিক্লেয়ার করে তারপর এই স্ট্রিং এভাবে লেখিঃ s = “This will cause “+Syntax+” error.” তাহলে Syntax নামের ভ্যারিয়েবলে যে স্ট্রিং রেখেছি তা ওই স্ট্রিং এর সাথে জোড়া দিয়ে s ভ্যারিয়েবলে রাখবে। নিচে আমি ছবি দিচ্ছিঃ
এখন আমরা সংখ্যাকে ভ্যারিয়েবলে রাখব। সেক্ষেত্রে আমরা একই কাজ করতে পারি। তবে ” বা ‘ দ্বারা Wrap করতে হবে না। আমরা সরাসরি এভাবে ইন্টিজার ভ্যারিয়েবলকে ডিক্লেয়ার করতে পারিঃ x = 5. তারপর এটার উপর যোগ, বিয়োগ, গুন, ভাগ, মডুলাস,পাওয়ার করতে পারি। তুমি যদি না জেনে থাকো মডুলাস অপারেটর কি, মডুলাস অপারেটর একটা ভাগ করার পর তার ভাগশেষ বার করে। আর পাওয়ার করার অপারেটর হচ্ছে **। নিচের ছবি দেখে সব বুঝতে পারবে।
পুর্ণসংখ্যাকে Integer বলে এবং দশমিক সংখ্যাকে Floating Point Number বলে। আমরা যদি চাই যে পুর্ণসংখ্যাকে দশমিক সংখ্যায় রূপান্তর করব তাহলে সেই সংখ্যাকে float() তে পাস করে দিতে পারি। আবার দশমিকের ক্ষেত্রে int() ব্যবহার করব। নিচের ছবিটা দেখ এবং নিজে নিজে ট্রাই করো।
এখন আমরা আরেকটা কাজ করব। একটা ভ্যারিয়েবলে একটা সংখ্যা 5 রেখে এভাবে প্রিন্ট করবঃ “The number is 5”. আমরা এটা স্ট্রিং জোড়া দেয়ার মাধ্যমে করব।
এগুলো পড়তে ভুলবেন না !! |
এখন যেহেতু আমরা 5 কে Integer হিসেবে ভ্যারিয়েবলে রেখেছি তাই এটা সরাসরি স্ট্রিং এর সাথে জোড়া দেয়া সম্ভব না। Float এর ক্ষেত্রেও তাই। তার জন্য আমরা এটাকে স্ট্রিং এ রূপান্তর করব। আমরা যদি সংখ্যাটিকে str() এ আর্গুমেন্ট হিসেবে পাঠায়ে তাহলে আমাদেরকে ওই সংখ্যাকে স্ট্রিং এ রূপান্তর করবে। নিচে উদাহরণ দেয়া হলোঃ
আজ এ পর্যন্তই। পরের পর্বে আমি তোমাদেরকে দেখাবো কিভাবে কোন কিছু ইনপুট নিতে হয়, স্ট্রিং নিয়ে আরও কারসাজি এবং লিস্ট সম্পর্কে ধারণা দিবো।