৮।পাইথন স্ট্রিং - দ্বিতীয় অংশ
পাইথনের কতগুলো বিল্ট ইন ফাংশন আছে, যেগুলো স্ট্রিং ভ্যালুতে ব্যবহার করা হয়।
len():
সাধারণত স্ট্রিংএর মধ্যে কতগুলো সংখ্যা আছে তা বের করার জন্য len() ফাংশন ব্যবহার করা হয়। len হল length (দৈর্ঘ্য) এর সংক্ষিপ্তরূপ। এটি পাইথনের একটি Built-In-Function যা কিনা পাইথন লাইব্রেরীতে থাকে।
এখানে word1 নামে একটি ভেরিয়েবল নেয়া হল, যার ভ্যালু হল " dinosaur "।এই স্ট্রিং ভ্যালুতে কতগুলো ওয়ার্ড আছে, তা জানার জন্য আমরা len() ফাংশন ব্যবহার করব।
len() ফাংশনের মধ্যে ভেরিয়েবলকে আনা হল। পাইথনে যেকোন ফাংশনের মধ্যে ভেরিয়েবলকে এভাবেই প্রকাশ করা হয় অর্থাৎ প্রথমে ফাংশনের নামে তারপর ব্র্যাকেটের ভিতরে নির্দিষ্ট ভেরিয়েবলকে আনতে হয়।এন্টার চাপি
" dinosaur " শব্দটির মধ্যে কতগুলি ওয়ার্ড আছে পাইথন তা সাথে সাথে জানিয়ে দিল।
আরেকটি উদাহরণ দেখি -
IDLE Shell এ help(len) লিখে enter দিলে len() ফাংশন সম্পর্কে তথ্য পাওয়া যাবে।
Index:
পাইথনের মাধ্যমে স্ট্রিং এর প্রতিটি উপাদানের ইনডেক্সিং বের করা যায়।
একটি স্ট্রিং এ প্রতিটি ক্যারেক্টারের/উপাদানের একটি নির্দিষ্ট পজিশন ভ্যালু থাকে যা সংখ্যা দিয়ে প্রকাশ করা হয় এবং যা শুরু শূন্য থেকে।
আর এই পজিশন ভ্যালু অনুসারে স্ট্রিং এর প্রতিটি উপাদানকে উপস্থাপনই ইনডেক্সের কাজ।
এখানে name নামে একটি variable নিলাম যাতে "Bangladesh" নামে একটি স্ট্রিং ভ্যালুকে রাখলাম।
এখন যদি "Bangladesh" নামের এই স্ট্রিং এর ইনডেক্সিং করতে চাই, তবে আগে নাম লিখতে হবে তারপর স্কয়ার ব্র্যাকেটের ভিতর নির্দিষ্ট ইনডেক্স নাম্বার দিতে হবে।যেমনঃ
এখানে প্রথমে ভেরিয়েবলের নাম লিখলাম এবং তারপর স্কয়ার ব্র্যাকেটে 'Zero' লিখে, পাইথনের কাছে জানতে চাচ্ছি 'Zero' পজিশনে কোন ক্যারেক্টারের অবস্থান। এন্টার চাপি।
পাইথন সাথে সাথে জানিয়ে দিল যে 'Zero' পজিশনে আছে 'B' । একে একে বাকিদের অবস্থান বের করি পজিশন অনুসারে।
নেগেটিভ নাম্বারেরও ইনডেক্সিং করা যায় অর্থাৎ উল্টো দিক থেকে ইনডেক্সিং হবে।
যেমন (-1) এ কোন ক্যারেক্টারের অবস্থান যদি দেখতে চাই তবে লিখবঃ
অর্থাৎ নেগেটিভ নাম্বারের ইনডেক্সিং স্ট্রিং এর শেষ ক্যারেক্টার থেকে শুরু হয় আর নেগেটিভ ইনডেক্সিং শুরুর মান -1।
Slicing:
Slice এর বাংলা হল ফালি ফালি করে কাটা। পাইথনেও Slice এভাবেই কাজ করে থাকে। পাইথনে প্রতিটি স্ট্রিং এর ইনডেক্স নাম্বার অনুযায়ী একটি রেঞ্জ থাকে এবং সেই রেঞ্জকে বিভিন্ন ভাগে ভাগ করে স্ট্রিং এর বিভিন্ন ক্যারেক্টারকে তাদের নিজেদের অবস্থান অনুযায়ী উপস্থাপনই Slice এর কাজ।
এখানে x নামে একটি ভেরিয়েবল নেয়া হল, যার ভ্যালু হল "Freedom" ।
এখন প্রথম যে ওয়ার্ডটি আছে মানে "F" , তা স্লাইসিং এর মাধ্যমে বের করতে চাচ্ছি ।
প্রথমে ভেরিয়েবলের নাম লিখলাম, তারপর স্কয়ার ব্র্যাকেটের ভিতরে স্লাইসের এক্সপ্রেশন দিতে হবে - কোলনের আগে স্লাইসের শুরুর ভ্যালু ও কোলনের পরে স্লাইসের শেষ ভ্যালু দিতে হবে।তবে শেষ ভ্যালু স্লাইস হবে না, তার আগের ভ্যালু হবে।
এখানে প্রথম দুইটি সংখ্যা (Fr) স্লাইসিং করে বের করলাম।
এখানে পঞ্চম ও ষষ্ঠ সংখ্যার (do) স্লাইসিং করা হল।
পুরো ওয়ার্ডটিকে স্লাইস করে নিয়ে আসা হল। [:] লিখা হলে পাইথন শুরু থেকে শেষ করে পুরো ওয়ার্ডটিকেই নিয়ে আসবে। আবার [0:] এর মাধ্যমে শুরুর মান দেওয়া হয়েছে কিন্তু শেষের মান না দেওয়ায় - শুরুর পর যা আছে তা নিয়েই স্লাইস হবে।
নেগেটিভ ভ্যালুর ও স্লাইসিং হয় -
অর্থাৎ উল্টো দিক থেকে স্লাইসিং হল।
Formatted String:
স্ট্রিং কে ফরমেটেড ভেরিয়েবলের মাধ্যমেও প্রকাশ করা যায়।
=>এক্ষেত্রে প্রথমে স্ট্রিং এর পরিবর্তে formatted variable কে আনতে হবে - %s (স্ট্রিং ভ্যালুর জন্য) , %d (ইন্টিজার ভ্যালুর জন্য)
=> তারপর % সাইন ও স্ট্রিং ভ্যালু বা ভেরিয়েবলকে নিয়ে আসতে হবে।
এখানে প্রথমে %s কে red car এর পরিবর্তনে ব্যবহার করা হয়েছে। মূল কোড লিখতে হয় প্রথমে ডাবল বা সিঙ্গেল কোডের মধ্যে। তারপর % সাইন আনতে হয় এবং স্ট্রিং ভ্যালু লিখতে হয়।
পরবর্তীতে x ভেরিয়েবলকে কল করা হলে, পাইথন %s এর পরিবর্তনে red car যুক্ত স্ট্রিং ভ্যালুকে উপস্থাপন করল।
=> আর মাল্টিপল স্ট্রিং ভ্যালু বা ভেরিয়েবল হলে রাউন্ড ব্র্যাকেট ব্যবহার হবে এবং প্রত্যেকে কমার মাধ্যমে আলাদা থাকবে।
এখানে চারটি স্ট্রিং ভ্যালুর জন্য চারটি %s ব্যবহার করা হয়েছে।এন্টার চাপি-
ইন্টিজার ভ্যালুর ক্ষেত্রে %d হবে
এখানে 1000 এর জন্য %d ও "Taka" এর জন্য %s ব্যবহার করা হয়েছে।