স্ট্রিং পাইথনে বেসিক ডেটা টাইপের একটি। পাইথন স্ট্রিং হল যেকোনো সংখ্যক ক্যারেক্টারের সমন্বয় যা অক্ষর, ডিজিট এবং অন্যান্য স্পেশাল ক্যারেক্টার দিয়ে তৈরি। এই টিউটোরিয়ালে, আপনি শিখব কীভাবে স্ট্রিং তৈরি, ম্যানিপুলেট এবং ফরম্যাট করতে হয় বিভিন্ন পরিস্থিতিতে ব্যবহার করার জন্য।
পাইথনে নতুন স্ট্রিং তৈরি করা
পাইথনে একটি নতুন স্ট্রিং তৈরি করতে, আপনাকে শুধু একটি ক্যারেক্টার সিকোয়েন্স ডিক্লেয়ার করতে হবে যা সিঙ্গেল বা ডবল কোটেশন মার্ক스로 ঘিরে থাকবে। ট্রিপল কোটেশন মার্কসও ব্যবহার করা হয় মাল্টিপল-লাইন স্ট্রিং-এর জন্য।
double_quotes = "My name is John!"
single_quotes = 'My name is John!'
multi_line_string = '''1. My name is John!
2. I am a programmer'''
স্ট্রিং ইন্ডেক্সিং
পাইথন স্ট্রিং-এর প্রতিটি ক্যারেক্টারের একটি ইন্টিজার ইন্ডেক্স থাকে। ইন্ডেক্সিং ০ থেকে শুরু হয় প্রথম ক্যারেক্টারে এবং স্ট্রিং-এর দিকেএ বৃদ্ধি পায়। আপনি একটি ইনডিভিজুয়াল ক্যারেক্টারের ইন্ডেক্স ব্যবহার করে স্ট্রিং থেকে সেই ক্যারেক্টারটি রিট্রিভ করতে পারেন নিচের উদাহরণটি দেখায়।
myPet = "Dog not a cat"
myPet[0] # 'D'
myPet[5] # 'o'
myPet[7] # ' '
myPet[12] # 't'
# myPet[15] # IndexError
স্ট্রিং-এর শেষ ক্যারেক্টারের ইন্ডেক্সের বাইরে ক্যারেক্টার অ্যাক্সেস করার চেষ্টা করলে IndexError হয়।
আপনি একটি নেগেটিভ ইন্ডেক্স ব্যবহার করে স্ট্রিং-এ একটি ক্যারেক্টার অ্যাক্সেস করতে পারেন। এই কেসে, ইন্ডেক্সিং -১ থেকে শুরু হয় স্ট্রিং-এর শেষ ক্যারেক্টারে, এবং পিছনে যাওয়ার সাথে সাথে নেগেটিভভাবে বৃদ্ধি পায়।
myPet = "Dog not a cat"
myPet[-1] # 't'
myPet[-6] # ' '
myPet[-8] # 'o'
myPet[-13] # 'D'
স্ট্রিং স্লাইসিং
স্লাইসিং হল একটি সাবস্ট্রিং (স্ট্রিং-এর একটি অংশ) একটি স্ট্রিং থেকে বের করার পদ্ধতি। এই টাস্ক স্ট্রিং ইন্ডেক্সিং-এর সাহায্যে করা হয়।
myPet = "Dog not a cat"
myPet[5:7] # 'ot'
myPet[1:12] # 'og not a ca'
এখানে, দুটি ইন্ডেক্স দেওয়া হয়েছে কোলন দ্বারা পৃথক, প্রথম ইন্ডেক্স নির্দেশ করে কোথা থেকে স্লাইসিং শুরু হবে এবং দ্বিতীয় ইন্ডেক্স নির্দেশ করে কোথা থেকে বন্ধ হবে। ফলাফল সাবস্ট্রিংটি শুরু ইন্ডেক্স থেকে শেষ ইন্ডেক্সের আগের ক্যারেক্টার পর্যন্ত অন্তর্ভুক্ত করে, শেষ ইন্ডেক্সের ক্যারেক্টারটি সাবস্ট্রিং-এ অন্তর্ভুক্ত থাকে না।
যদি আপনি শুরু ইন্ডেক্স না দেন, স্লাইসিং স্ট্রিং-এর প্রথম ক্যারেক্টার থেকে শুরু হয়। যদি আপনি শেষ ইন্ডেক্স না দেন, স্লাইসিং শেষ ক্যারেক্টারে শেষ হয় সেটিও ফলাফল সাবস্ট্রিং-এ অন্তর্ভুক্ত করে।
myPet = "Dog not a cat"
myPet[:7] # 'Dog not'
myPet[10:] # 'cat'
myPet[:] # 'Dog not a cat'
আপনি নেগেটিভ ইন্ডেক্সও স্লাইসিং ইন্ডেক্স হিসেবে দিতে পারেন।
myPet = "Dog not a cat"
myPet[10:-1] # 'ca'
স্ট্রিং-এর দৈর্ঘ্য
বিল্ট-ইন পাইথন মেথড len() একটি স্ট্রিং-এর দৈর্ঘ্য আউটপুট করে।
myPet = "Dog not a cat"
len(myPet) # 13
এক স্ট্রিং-এর মাধ্যমে ইটারেট করা
আপনি একটি for লুপ ব্যবহার করে একটি স্ট্রিং-এর প্রতিটি ক্যারেক্টারের মাধ্যমে ইটারেট করতে পারেন।
উদাহরণ:
name = "John"
for char in name:
print(char) # 'J', 'o', 'h', 'n'
স্ট্রিং ক্যাটেনেশন
স্ট্রিং ক্যাটেনেশন হল দুটি বা অধিক স্ট্রিং জোড়া দিয়ে একটি স্ট্রিং তৈরি করা। পাইথনে, স্ট্রিং ক্যাটেনেট করার বেশ কিছু পদ্ধতি আছে।
একটি হল + অপারেটর ব্যবহার করা।
str1 = 'Hello'
str2 = 'World'
concat_str = str1 + str2 # 'HelloWorld'
concat_str = str1 + ' ' + str2 # 'Hello World'
আপনি * অপারেটর ব্যবহার করে একটি স্ট্রিংকে নিজের সাথে যেকোনো সংখ্যক বার ক্যাটেনেট করতে পারেন।
concat_str = str1 * 3 # 'HelloHelloHello'
স্ট্রিং ক্যাটেনেট করার আরেকটি পদ্ধতি হল join() মেথড।
বিল্ট-ইন join() মেথড ব্যবহার করা হয় একটি স্ট্রিং অ্যারে ক্যাটেনেট করতে একটি কমন সেপারেটর ব্যবহার করে।
arr = [str1, str2]
concat_str = (' ').join(arr) # 'Hello World'
concat_str = (',').join(arr) # 'Hello,World'
উপরের কোডে, প্রথম join() মেথড অ্যারেতে প্রতিটি শব্দের মধ্যে হোয়াইট স্পেস যোগ করে।
দ্বিতীয় join() মেথড অ্যারেতে প্রতিটি শব্দের মধ্যে কমা ইনসার্ট করে।
স্ট্রিং এবং Int ক্যাটেনেশন
পাইথনে, আমরা একটি স্ট্রিংকে একটি ইন্টিজারের সাথে ক্যাটেনেট করতে পারি কিন্তু + অপারেটর দিয়ে না। যদি আমরা নিচের কোড ব্যবহার করার চেষ্টা করি:
name = "John"
age = 35
print(a + b)
আমরা পাব:
Traceback (most recent call last):
File "concat.py", line 5, in
print(a + b)
TypeError: can only concatenate str (not "int") to str
দ্রষ্টব্য: আপনি + অপারেটর ব্যবহার করে একটি স্ট্রিং এবং একটি ইন্টিজার ক্যাটেনেট করতে পারবেন না।
এই এরর এড়াতে, আমরা str() মেথড ব্যবহার করে ইন্টিজারকে স্ট্রিং-এ কনভার্ট করতে পারি, উদাহরণস্বরূপ:
name = "John "
age = "35"
print(a + str(b)) # John 35
স্ট্রিং কীভাবে স্প্লিট করবেন
বিল্ট-ইন split() মেথড ব্যবহার করা হয় একটি সিঙ্গল স্ট্রিংকে স্ট্রিং অ্যারেতে স্প্লিট করতে।
string = "My name is John"
split_arr = string.split(' ') # ['My', 'name', 'is', 'John']
আমরা একটি সেপারেটর ব্যবহার করে স্ট্রিং স্প্লিট করতে পারি:
string = "John, Rose, Jack, Mary"
split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']
Strip - হোয়াইট স্পেস রিমুভ করা
strip(), বিল্ট-ইন স্ট্রিং মেথড ব্যবহার করা হয় একটি স্ট্রিং-এর শুরু এবং শেষ থেকে হোয়াইট স্পেস রিমুভ করতে।
string = " Hello, World "
stripper_str = string.strip() # 'Hello, World'
দেখা যাচ্ছে, strip() স্ট্রিং-এর মাঝপথের হোয়াইট স্পেস রিমুভ করে না, শুধু দুটি প্রান্তে।
strip() মেথডের দুটি ভেরিয়েন্ট আছে, Left Strip এবং Right Strip:
lstrip()rstrip()
এই মেথডগুলো ক্রমশ স্ট্রিং-এর বাম পাশ এবং ডান পাশের হোয়াইট স্পেস রিমুভ করে।
উদাহরণ:
lsplit_str = string.lstrip() # 'Hello, World '
rsplit_str = string.rstrip() # ' Hello, World'
Strip মেথডগুলো বিশেষভাবে ইউজার ইনপুট পড়ার সময় উপকারী, যেখানে ইউজাররা অতিরিক্ত হোয়াইট স্পেস পাস করতে পারে।
স্ট্রিং ফরম্যাট করা
পাইথনের format() মেথড একটি স্ট্রিং ফরম্যাট করতে ব্যবহৃত হয়। কার্লি ব্রেস {} ব্যবহার করা হয় সেই স্ট্রিং-এর ভিতরে যা ফরম্যাট করতে হবে, একটি প্লেসহোল্ডার হিসেবে সেই অংশের জন্য যা format() মেথডে আর্গুমেন্ট হিসেবে প্রদান করা হবে।
উদাহরণ:
"Hello, {}".format('John') # 'Hello, John'
উপরের উদাহরণে {} 'John' দিয়ে রিপ্লেস করা হয়েছে ফরম্যাটেড স্ট্রিং-এ।
আপনি স্ট্রিং-এর ভিতরে একাধিক কার্লি ব্রেস ব্যবহার করতে পারেন ফরম্যাট করার জন্য। সেগুলো format() মেথডে প্রদান করা আর্গুমেন্টস দ্বারা রিপ্লেস করা হয় অর্ডারে (যদি কার্লি ব্রেসের ভিতরে পজিশনাল ইন্ডেক্স না দেওয়া থাকে) বা পজিশনাল অর্ডারে।
উদাহরণ:
"I have a {}, {}, and a {}".format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit'
"I have a {1}, {0}, and a {2}".format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'
ইন্ডেক্সের বদলে, আপনি কীওয়ার্ড আর্গুমেন্টস প্রদান করতে পারেন format() মেথডে যাতে সেগুলো কার্লি ব্রেসের ভিতরে ব্যবহার করা যায়।
উদাহরণ:
print("{friend} is my friend and {enemy} is my enemy".format(friend="John", enemy="Jack"))
# 'John is my friend and Jack is my enemy'
format() মেথড বেশ বاح্যিক যা অনেক ইউজ কেসের জন্য ব্যবহার করা যায়।
format() মেথডের কিছু অন্যান্য অ্যাপ্লিকেশন:
arr = [3, 5]
'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 4 cats'
# নম্বরকে বিভিন্ন বেসে কনভার্ট করা
"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)
# 'int: 42; hex: 2a; oct: 52; bin: 101010'
স্ট্রিংকে লোয়ারকেসে কনভার্ট করা
পাইথনের lower() মেথড ব্যবহার করে, আপনি একটি স্ট্রিংকে লোয়ারকেসে কনভার্ট করতে পারেন।
উদাহরণ:
string = "Hello, World!"
string.lower() # 'hello, world!'
স্ট্রিংকে আপারকেসে কনভার্ট করা
একইভাবে, পাইথনের upper() মেথড ব্যবহার করে, আপনি একটি স্ট্রিংকে আপারকেসে কনভার্ট করতে পারেন।
উদাহরণ:
string = "Hello, World!"
string.upper() # 'HELLO, WORLD!'
উপসংহার
আশা করি এই টিউটোরিয়ালের সাহায্যে, আপনি এখন পাইথন স্ট্রিং এবং স্ট্রিং অপারেশনের জন্য বিভিন্ন মেথড কীভাবে ব্যবহার করতে হয় उससे পরিচিত হয়েছেন।
রেফারেন্স: পাইথনের স্ট্রিং ডকুমেন্টেশন