গত পর্বে আমরা একটা উদাহরণ দিয়েছিলাম যে, একটা টেক্সট ফাইল থেকে আমরা চাইলে আমাদের প্রয়োজনীয় যেকোন শব্দ খুঁজে বের করতে পারি পাইথনের সাহায্যে। এই কাজটা করার জন্য পাইথনের যে জিনিসগুলো সম্পর্কে জানা থাকা লাগবে তা হচ্ছে- পাইথনের string ডাটা টাইপ, if/else statement এবং for loop। আজকে আমরা পাইথনের string ডাটা টাইপ সম্পর্কে জানার চেষ্টা করব।
string মানে হচ্ছে শব্দগুচ্ছ। তার মানে বুঝাই যাচ্ছে পাইথনের যে ডাটা টাইপ সংখ্যার বাইরে গিয়ে শুধু শব্দ নিয়ে কাজ করে তাই হচ্ছে string।
string ডাটা টাইপ ডিক্লারেশনের জন্য ডাবল কোট (” “) এবং সিঙ্গেল কোট (‘ ‘) ব্যবহার করা হয়। কোটের মাঝে থাকা যেকোন কিছুকেই পাইথন string হিসেবে বিবেচনা করে। নিচের উদাহরণ গুলো লক্ষ্য করা যাক-
>>> a = “Hello World!”
>>> b = ” Give me the 8 numbered jersey.”
উপরে আমরা দুটো string ডাটা টাইপের ভ্যারিয়েবল ডিক্লেয়ার করেছে। প্রথম ভ্যারিয়েবল a তে আছে Hello World! বাক্যটি। দ্বিতীয় ভ্যারিয়েবল b তে আছে Give me the 8 numbered jersey. বাক্যটি (full stop সহ)। তার মানে বোঝাই যাচ্ছে, কোটের ভিতরে হিব্রু লিখলেও পাইথনের কাছে সেটা শুধুমাত্র character হিসেবেই গণ্য হবে।
এবার দেখা যাক, পাইথন একটা string কে ঠিক কিভাবে manipulate করে। পাইথন আসলে কোটের ভিতর থাকা ক্যারেক্টারগুলোকে একটা সিরিয়ালে মেমোরীতে (CPU) রেখে দেয়। সিরিয়ালটা শুরু হয় 0 থেকে অর্থাৎ প্রথম সংখ্যাটার সিরিয়াল নম্বর হয় 0। এবং এই সিরিয়াল নম্বর দিয়ে আমরা আমাদের ইচ্ছামত character কে string এর বাইরে থেকেই access করতে পারি। যেমন-
এখানে, আমরা a ভ্যারিয়েবলে থাকা string এর 1 নং character টা access করছি। 1 নং character হচ্ছে- e।
তাহলে যেকোন string এর নির্দিষ্ট কোন character access করার সাধারণ মেথড হচ্ছে-
string_name[index of that character]
index মানে হচ্ছে ক্রম আর string name বলতে ভ্যারিয়েবলের নামটাকেই বোঝানো হচ্ছে।
কোন string এর দৈর্ঘ্য (length) নির্ণয় করা যায় len() ফাংশন দিয়ে। সাধারণ মেথড হচ্ছে-
len(string_name)
উদাহরণ-
এখানে একটা জিনিস লক্ষ্য করলে আমরা দেখতে পাই যে, নিচের len[a] কমান্ডের ফলে একটা error হচ্ছে। এর কারণ আমাদের কমান্ডটা হতে হবে 1st parentheses এ।
একটা string এ যদি কোটের ভিতর শুধু blank space থাকে তবে তাও string হিসেবে গণ্য হবে এবং তার একটা সিরিয়াল নম্বর তাহকবে !
যেমন-
এখানে, a string এর 5 নং সিরিয়ালে থাকা blank space টা প্রিন্ট হয়েছে।
আচ্ছা, যদি এমন হয় আমরা একটা string এ কোন সংখ্যা আছে কিনা তা চেক করতে চাচ্ছি ।এর জন্য আছে পাইথনের isalpha() ফাংশন।
প্রথম string ‘a’ তে space থাকায় isalpha()- ‘False’ রিটার্ন করেছে। দ্বিতীয় string ‘b’ তে কোন space বা সংখ্যা না থাকায় ‘True’ রিটার্ন হচ্ছে। অন্যদিকে সংখ্যা থাকায় string ‘c’ রিটার্ন করছে ‘False’।
উদাহরণ থেকেই আমরা দেখতে পাচ্ছি যে, সাধারণ মেথড হচ্ছে string_name.isalpha()। ফাংশনটার নাম মনে রাখার উপায়, is there any alpha(bet)?
আচ্ছা, string এর দুইপাশে থাকা space কে যদি পরিষ্কার করতে চাই তবে?
string_name.strip() এভাবে আমরা string এর দুইপাশে থাকা space কে দূর করতে পারি। শুধু বামদিকের space দুর করতে ব্যবহার হয় lstrip() বা left strip এবং শুধু ডানদিকের space দুর করতে rstrip() বা right strip।
আজকে এই পর্যন্তই ! সামনের পর্বে আমরা string manipulation এর আরও কিছু Tricks শিখব।
একটা প্রশ্ন রেখে যাচ্ছিঃ string এর বাইরে থেকে string এ থাকা প্রতিটা character কে বড় হাতের কিংবা ছোট হাতের অক্ষরে কী রুপান্তর করা
সম্ভব ?
সাম্প্রতিক মন্তব্য