পাইথন প্রোগ্রামিং স্ট্রিং

স্ট্রিং হচ্ছে কারেকটার সেট। একটা ওয়ার্ড, একটা বাক্য, একটা প্র্যারাগ্রাফ, সব গুলোই স্ট্রিং। যেমন Hello World একটা স্ট্রিং। সব প্রোগ্রামেই স্ট্রিং নিয়ে অনেক কাজ করতে হয়। গেম হোক, সফটওয়ার হোক, মোবাইল অ্যাপ হোক। তাই স্ট্রিং নিয়ে ভালো ধারণা থাকা দরকার। স্ট্রিং বোঝাতে পাইথনে ডাবল কোটেশন বা সিঙ্গেল কোটেশন ব্যবহার করা হয়।

স্ট্রিং কনক্যাটিনেশন
কনক্যাটিনেশন (Concatenation) মানে জোড়া দেওয়া বা একত্র করা। আমাদের কাছে যদি দুইটা স্ট্রিং থাকে, আমরা তাকে এক সাথ করতে চাইলে স্ট্রিং কনক্যাটিনেশন করতে পারি। দুইটা স্ট্রিং এর মাঝে যোগ চিহ্ন (+) দিয়ে একত্র করা যায়। যেমনঃ

s1 = 'Hello'
s2 = 'World!'
print(s1+s2)

যা প্রিন্ট করবেঃ
HelloWorld!

পাইথন স্ট্রিং ফরমেট
একটা স্ট্রিং এর ভেতরে একটা ভ্যারিয়েবল প্রিন্ট করার জন্য স্ট্রিং ফরম্যাট (String Formats) ব্যবহার করা হয়। যেমন আমাদের a এবং b নামে দুইটি ভ্যারিয়েবল আছে। a এবং b এর মান আমরা স্ট্রিং এর ভেতরে প্রিন্ট করব। এভাবেঃ value of a = 10। value of b = 50
তার জন্যঃ

a = 10
b = 50
print('value of a = {}, value of b = {}' .format(a, b))

যা আউটপুট দিবেঃ

value of a = 10, value of b = 50

আমরা চাইলে স্ট্রিংটা একটা ভ্যারিয়বলে রেখে তারপর ফরমেট করতে পারি। যেমনঃ

a = 10
b = 50
s = "value of a = {}, value of b = {}"
print (s.format(a, b))

আউটপুটঃ

value of a = 10, value of b = 50

আরেকটা মজার কাজ করা যায়। format(b, a) লিখে a এর ভ্যালু আগে এক্সেস করার জন্য আমরা এভাবে কোড লিখতে পারিঃ

a = 10
b = 50
print ('value of a = {1}, value of b = {0}' .format(b, a)  )

আউটপুটঃ

value of a = 10, value of b = 50

স্ট্রিং ফরম্যাট দিয়ে যে কোন ভ্যারিয়েবলই ফরম্যাট করা যায়। যেমনঃ

name  = "Guido van Rossum"
print (' Developer name of Python programming is {}!' .format(name))

আউটপুটঃ

Developer name of Python programming is Guido van Rossum!

আমরা চাইলে লিস্টও স্ট্রিং ফরমেট ব্যবহার করে প্রিন্ট করতে পারি। একটা লিস্ট স্ট্রিং ফরম্যাট ব্যবহার করে প্রিন্ট করতেঃ

my_list = [ 1, 2, 3, 4]
print ("My List {}" .format(my_list))

আউটপুটঃ

My List [1, 2, 3, 4]

পাইথন স্ট্রিং জোড়া (join) লাগানো এবং আলাদা (split) করা
স্ট্রিং এর শব্দগুলো গুলো আলাদা আলাদা করতেঃ

s = "This is a string."
print (s.split())

যা ওয়ার্ড গুলোর একটা লিস্ট করে দিবে, এমনঃ [‘This’, ‘is’, ‘a’, ‘string.’]
নিচের প্রোগ্রামটি দেখিঃ

s = "This is a string."
words = s.split()
for w in words:
    print (w)

যা সব গুলো শব্দ আলাদা আলাদা করে প্রিন্ট করেবে।
এখন আমরা চাচ্ছি শব্দগুলোকে আবার এক সাথে করতে। তার জন্যঃ

s = "This is a string."
words = s.split()
for w in words:
    print (w)

print (' ' .join(words))

এখানে প্রথমে সব গুলো শব্দকে split দিয়ে আলাদা করা হয়েছে এবং রাখা হয়েছে words ভ্যারিয়েবলে। তারপর লুপ দিয়ে সব গুলো প্রিন্ট করা হয়েছে। এরপর আবার join দিয়ে এক করে তা প্রিন্ট করা হয়েছে।

স্ট্রিং জয়েন করার জন্য মাঝখানে আমরা কি দিব তা বলে দিতে পারি। ‘ ‘ .join(words) এখানে স্পেস দেওয়া হয়েছে। আমরা যদি চাই, অন্য কোন কারেকটার ব্যবহার করতে পারি। যেমন আমরা এবার হাইপেন দিতে চাই, তার জন্যঃ

s = "This is a string."
words = s.split()
for w in words:
    print (w)

print ('-' .join(words))

জয়েন করা অংশ প্রিন্ট করবে এভাবেঃ This-is-a-string। সুন্দর না?
একটা স্ট্রিং লিস্টকে জোড়া দিতে পারি এভাবেঃ

list = [ 'Hello' , 'This' , 'is', 'Rossum!']

print (' ' .join(list))

যা আউটপুট দিবেঃ

Hello This is Rossum!

স্ট্রিং মেথড
স্ট্রিং নিয়ে কাজ করার জন্য পাইথনে অনেক গুলো বিল্ট ইন মেথড রয়েছে। যেগুলোকে কেউ কেউ ফাংশন বলে। এখানেন আমরা কিছু মেথড দেখব। যেমন একটা স্ট্রিং এর সব গুলো কারেকটারকে ছোট হাতে কনভার্ট করতেঃ

s = "This is a String!"
print (s.lower())

যা আউটপুট দিবেঃ

this is a string!

উপরে আমরা একটা স্ট্রিং নিয়েছি। এর দুইটা কারেকটা বড় হাতের ছিল, এখন পরে তা lower করে প্রিন্ট করাতে সব গুলোই ছোট হাতের অক্ষরে পরিনত হয়েছে।
upper করলে সব গুলো আবার বড় হাতের অক্ষরে পরিনত হবেঃ

s = "This is a String!"
print (s.upper())

যা আউটপুট দিবেঃ

THIS IS A STRING!

যেটা বড় হাতের রয়েছে তা ছোট হাতের, যেটা ছোট হাতের তাকে বড় হাতের করার জন্যঃ

s = "This is a String!"
print (s.swapcase())

যা আউটপুট দিবেঃ

tHIS IS A sTRING!

৭.৫ স্ট্রিং রিপ্লেস
আমরা চাইলে স্ট্রিং এর যে কোন শব্দ অন্য কিছু দিয়ে রিপ্লেস করে দিতে পারি। যেমনঃ

s = "This is a String!"
new = s .replace("This" , "That")
print (new)

যা আউটপুট দিবেঃ

That is a String!

count()

কোন স্ট্রিং এ একটা সাব স্ট্রিং বা একটা লেটার কতবার আছে, তা বের করতে count() মেথড ব্যবহার করা হয়। যেমনঃ

str = "This is a string!"
print (str.count( 's'))

উপরের প্রোগ্রামটি “This is a string!” এ কয়টি s আছে, তা প্রিন্ট করবে।আর তা হচ্ছে ৩।
এখন আমরা চাইলে একটা সাব স্ট্রিং যেমন ‘is’ বা ‘This’ এভাবে ও যে কোন কিছু ব্যবহার করতে পারব।
find()

কোন স্ট্রিং এ কোন একটা সাবস্ট্রিং খুঁজতে find() মেথড ব্যবহার করা হয়। যেমনঃ

s = "This is a String!"
if s.find('is' ):
    print ( 'we found "is" in the string')

len()

স্ট্রিং এর লেন্থ বা কয়টা ক্যারেক্টার রয়েছে, তা বের করার জন্য len() মেথড ব্যবহার করা হয়। খেয়াল রাখতে হবে স্পেস ও একটা কারেক্টার।

str = "This is a string!"

print (len(str))

যা আউটপুট দিবে 17।

এগুলো ছাড়াও আরো অনেক গুলো মেথড রয়েছে। এছাড়া আমরা চাইলে নিজেদের মত করে মেথড লিখে নিতে পারি। যা আমরা সামনের অধ্যায় গুলোতে শিখব।

Leave a Reply