পাইথনে স্ট্রিং-এর জন্য এক্সক্লूसিভলি ব্যবহার করা অনেক মেথড আছে। পাইথন স্ট্রিং মেথডগুলোর মধ্যে রয়েছে upper(), lower(), capitalize(), title(), এবং আরও অনেক কিছু। এই স্ট্রিং মেথডগুলো স্ট্রিং ম্যানিপুলেট, এডিট, এবং নিয়ে কাজ করার জন্য উপকারী।
স্ট্রিং প্রোগ্রামিং-এ ব্যবহৃত কোর ডেটা টাইপের একটি, এবং এগুলো কম্পিউটারকে টেক্সট নিয়ে কাজ করতে দেয়। উদাহরণস্বরূপ, একটি স্ট্রিং ব্যবহার করা হয়েতে পারে একটি ইউজারের নাম বা তাদের ইমেইল অ্যাড্রেস পাইথন প্রোগ্রামে সংরক্ষণ করতে।
পাইথনে বেশ কিছু বিল্ট-ইন স্ট্রিং মেথড আছে যেগুলো স্ট্রিং মডিফাই এবং ম্যানিপুলেট করতে ব্যবহার করা যায়। এই ফাংশনগুলো পাইথনে বিল্ট-ইন থাকায় আমাদের কোনো লাইব্রেরি ইম্পোর্ট করার প্রয়োজন নেই।
এই টিউটোরিয়ালে, আমরা পাইথনে আপনার 마주 করার সবচেয়ে কমন স্ট্রিং মেথডগুলো ব্রেক ডাউন করব এবং কীভাবে সেগুলো ব্যবহার করা হয় তার উদাহরণ এক্সপ্লোর করব।
স্ট্রিং রিফ্রেশার
স্ট্রিং আপনাকে প্রোগ্রামিং-এ টেক্সট সংরক্ষণ করতে দেয় এবং পাইথনে একক কোট ' ' বা ডবল কোট " " এর মধ্যে ডিক্লেয়ার করা হয়। আপনি যেকোনো একটা ব্যবহার করতে পারেন, কিন্তু আপনি যেটি ব্যবহার করতে সিদ্ধান্ত নিলেন সেটি আপনার প্রোগ্রামে কনসিস্টেন্ট রাখা উচিত। একটি স্ট্রিং ডিক্লেয়ার করার উদাহরণ:
"This is an example string in Python."
আমরা print() ফাংশন ব্যবহার করে একটি স্ট্রিং প্রিন্ট আউট করতে পারি:
print("This is an example string!")
আমাদের প্রোগ্রাম রিটার্ন করে: This is an example string!
যখন আপনি একটি স্ট্রিং নিয়ে কাজ করছেন, আপনি সেটিকে অন্য একটি স্ট্রিং-এর সাথে 머জ করতে চাইতে পারেন একটি নতুন তৈরি করতে। প্রোগ্রামিং-এ এটাকে স্ট্রিং কনক্যাটেনেশন বলা হয়। দুটি স্ট্রিং 머জ করতে, আমরা + অপারেটর ব্যবহার করি। দুটি স্ট্রিং 머জ করার print() ফাংশন উদাহরণ:
print("Example" + "String")
আমাদের প্রোগ্রাম রিটার্ন করে: ExampleString। লক্ষ্য করুন যে যখন আমরা স্ট্রিংগুলো 머জ করি, কোনো স্পেস ইনক্লুড করা হয় না। আপনি যদি স্পেস ইনক্লুড করতে চান, আপনার স্ট্রিং-এর ভিতরে হোয়াইটস্পেস ক্যারেক্টার যোগ করতে হবে।
এখন যেহেতু আমরা স্ট্রিং-এর বেসিক্স এক্সপ্লোর করেছি, আমরা পাইথন স্ট্রিং মেথড এক্সপ্লোর করা শুরু করতে পারি।
আপারকেস এবং লোয়ারকেস স্ট্রিং
পাইথনে দুটি সবচেয়ে কমন স্ট্রিং ফাংশন হলো যেগুলো আপনাকে আপনার স্ট্রিং-এর কেস আপারকেস বা লোয়ারকেস-এ চেঞ্জ করতে দেয়। upper() এবং lower() ফাংশনগুলো একটি স্ট্রিং রিটার্ন করে যেটির সকল অরিজিনাল লেটার আপারকেস বা লোয়ারকেস-এ কনভার্ট করা হয়েছে।
যখন আপনি upper() বা lower() ফাংশন ব্যবহার করেন, রিটার্ন হওয়া স্ট্রিং একটি নতুন স্ট্রিং হবে, এবং আপনার এক্সিস্টিং স্ট্রিং অপরিবর্তিত থাকবে।
upper() ক্লাস ব্যবহার করে একটি স্ট্রিং আপারকেস-এ কনভার্ট করার উদাহরণ:
string_example = "String Example" print(string_example.upper())
আমাদের প্রোগ্রাম রিটার্ন করে:
"STRING EXAMPLE".
আমরা যদি আমাদের স্ট্রিং লোয়ারকেস-এ দেখাতে চাই, তবে lower() ফাংশন এইভাবে ব্যবহার করতে পারি:
print(string_example.lower())
আমাদের কোড রিটার্ন করে:
"string example".
অতিরিক্তভাবে, আপনি capitalize() মেথড ব্যবহার করতে পারেন একটি স্ট্রিং-এর প্রথম ক্যারেক্টার ক্যাপিটালাইজ করতে, এবং title() মেথড ব্যবহার করতে পারেন একটি স্ট্রিং-এর প্রতিটি শব্দের প্রথম লেটার ক্যাপিটালাইজ করতে।
এই ফাংশনগুলো উপকারী যদি আপনি স্ট্রিং কমপেয়ার করতে চান এবং সেই স্ট্রিংগুলোর কেস কনসিস্টেন্ট রাখতে চান। এটি গুরুত্বপূর্ণ কারণ পাইথনে কমপেরিজন কেস সেনসিটিভ। উদাহরণস্বরূপ, আপনি একটি ইউজারের ইমেইল অ্যাড্রেসকে লোয়ারকেস-এ কনভার্ট করতে চাইতে পারেন যাতে আপনি ফাইলে থাকা একটা সাথে তা কমপেয়ার করতে পারেন।
স্ট্রিং লেন্থ
যখন আপনি একটি স্ট্রিং নিয়ে কাজ করছেন, আপনি সেটির লেন্থ জানতে চাইতে পারেন। len() পাইথন স্ট্রিং মেথড ব্যবহার করা যায় একটি স্ট্রিং-এর ক্যারেক্টার সংখ্যা রিটার্ন করতে।
এই ফাংশনটি উপকারী যদি আপনি একটি ফর্ম ফিল্ডের জন্য মিনিমাম বা ম্যাক্সিমাম লেন্থ সেট করতে চান, উদাহরণস্বরূপ। আপনি যদি চান একটি ইউজারের ইমেইল অ্যাড্রেস ৫০ ক্যারেক্টারের বেশি না হয়, তবে আপনি len() ব্যবহার করে ইমেইলের লেন্থ বের করতে পারেন এবং ৫০ ক্যারেক্টারের বেশি হলে এরর দেখাতে পারেন।
একটি স্ট্রিং-এর লেন্থ চেক করার প্রোগ্রাম উদাহরণ:
string_length = "What is the length of this string?" print(len(string_length))
আমাদের প্রোগ্রাম রিটার্ন করে: 34। আমাদের কোডে, আমরা string_length ভেরিয়েবল ডিক্লেয়ার করেছি যেটি স্ট্রিং What is the length of this string? সংরক্ষণ করে। তারপর, পরবর্তী লাইনে, আমরা len(string_length) মেথড ব্যবহার করেছি আমাদের স্ট্রিং-এর লেন্থ বের করতে, এবং print() মেথডের মাধ্যমে পাস করি যাতে আমরা কনসোলে লেন্থ দেখতে পারি।
মনে রাখবেন লেন্থ ফাংশন একটি স্ট্রিং-এর প্রতিটি ক্যারেক্টার কাউন্ট করে, যাতে লেটার, সংখ্যা, এবং হোয়াইটস্পেস ক্যারেক্টারই ইনক্লুড থাকে।
বুলিয়ান স্ট্রিং মেথড
অনেক পাইথন স্ট্রিং মেথড আছে যেগুলো বুলিয়ান ভ্যালু রিটার্ন করে। এই মেথডগুলো উপকারী যদি আমরা একটি স্ট্রিং-এর বৈশিষ্ট্য সম্পর্কে আরও জানতে চাই। উদাহরণস্বরূপ, যদি আমরা চেক করতে চাই একটি স্ট্রিং আপারকেস কিনা, বা এতে শুধু সংখ্যা আছে কিনা, আমরা একটি বুলিয়ান স্ট্রিং মেথড ব্যবহার করতে পারি যা True রিটার্ন করবে যদি সকল ক্যারেক্টার আপারকেস হয়।
এখানে পাইথন স্ট্রিং মেথডগুলোর একটি লিস্ট যেগুলো তাদের কন্ডিশন মিট হলে True রিটার্ন করে:
str.isupper(): স্ট্রিং-এর অ্যালফাবেটিক ক্যারেক্টারগুলো সব আপারকেসstr.islower(): স্ট্রিং-এর অ্যালফাবেটিক ক্যারেক্টারগুলো সব লোয়ারকেসstr.istitle(): স্ট্রিং টাইটেল কেসে আছেstr.isspace(): স্ট্রিং শুধু হোয়াইটস্পেস ক্যারেক্টার দিয়ে গঠিতstr.isnumeric(): স্ট্রিং শুধু নুমেরিক ক্যারেক্টার ধারণ করেstr.isalnum(): স্ট্রিং শুধু অ্যালফানিউমেরিক ক্যারেক্টার ধারণ করে (নো সিম্বল)str.isalpha(): স্ট্রিং শুধু অ্যালফাবেটিক ক্যারেক্টার ধারণ করে (নো নাম্বার বা সিম্বল)
চলুন এই বুলিয়ান স্ট্রিং মেথডগুলোর কয়েকটি এক্সপ্লোর করি। isupper() ফাংশন ব্যবহার করে চেক করার উদাহরণ যে একটি স্ট্রিং শুধু আপারকেস ক্যারেক্টার ধারণ করে কিনা:
full_name = "JOHN APPLESEED" print(full_name.isupper())
আমাদের প্রোগ্রাম রিটার্ন করে: True। full_name ভেরিয়েবল একটি ভ্যালু ধারণ করে যেটি সম্পূর্ণ আপারকেসে টেক্সট, তাই আমাদের isupper() ফাংশন True ইভ্যালুয়েট করে এবং True ভ্যালু রিটার্ন করে।
একইভাবে, আমরা istitle() ফাংশন ব্যবহার করতে পারি চেক করতে একটি স্ট্রিং টাইটেল কেসে আছে কিনা:
sentence = "This is a sentence." print(sentence.istitle())
আমাদের কোড রিটার্ন করে: False। কারণ আমাদের স্ট্রিং টাইটেল কেসে নয় - প্রতিটি ক্যারেক্টার ক্যাপিটাল লেটার দিয়ে শুরু হয় না - আমাদের istitle() মেথড False ইভ্যালুয়েট করে।
বুলিয়ান স্ট্রিং মেথড ইউজফুল হতে পারে যখন ইউজার ইনপুট রিসিভ করছেন যেটি আপনি চেক করতে চান, অথবা যদি আপনার দুটি একজেক্ট ভ্যালু থাকে যেগুলো আপনি কমপেয়ার করতে চান।
Starts With এবং Ends With
ধরি আপনার একটি স্ট্রিং আছে এবং আপনি চেক করতে চান এটি কোনো নির্দিষ্ট ভ্যালু দিয়ে শুরু বা শেষ হয় কিনা। উদাহরণস্বরূপ, আপনার একটি ইউজারের নাম আছে এবং আপনি চেক করতে চান এটি F দিয়ে শুরু হয় কিনা। আমরা startswith() এবং endswith() ফাংশন ব্যবহার করে আমাদের স্ট্রিং চেক করতে পারি।
startswith() মেথড True রিটার্ন করে যদি একটি স্ট্রিং নির্দিষ্ট ভ্যালু দিয়ে শুরু হয়, এবং endswith() মেথড True রিটার্ন করে যদি একটি স্ট্রিং নির্দিষ্ট ভ্যালু দিয়ে শেষ হয়। অন্যথায়, স্ট্রিং মেথডগুলো false রিটার্ন করে।
দুই মেথডই তিনটি প্যারামিটার নেয়। প্রথমটি হলো যে ভ্যালুটি আপনি খুঁজছেন। অপশনালি, আপনি স্ট্রিং-এর ভিতরে সার্চ শুরু করার স্টার্টিং ইন্ডেক্স দ্বিতীয় প্যারামিটারে স্পেসিফাই করতে পারেন, এবং আপনি থার্ড প্যারামিটারে সার্চ শেষ করার ইন্ডেক্সও স্টেট করতে পারেন।
startswith() ফাংশন একশনে উদাহরণ:
full_name = "Bill Jefferson"
print(full_name.startswith("Bill"))
আমাদের প্রোগ্রাম রিটার্ন করে: True।
আমরা যদি চেক করতে চাই Bill আমাদের স্ট্রিং-এ চতুর্থ লেটারের পরে শুরু হয় কিনা - আইটেম যর ইন্ডেক্স ভ্যালু 3, কারণ ইন্ডেক্স 0 থেকে শুরু হয় - তবে আমরা নিচের কোড ব্যবহার করতে পারি:
full_name = "Bill Jefferson"
print(full_name.startswith("Bill", 3))
আমাদের কোড রিটার্ন করে False, কারণ Bill ইন্ডেক্স ভ্যালু 3-এর পরে স্ট্রিং-এ görün না।
স্প্লিট এবং জয়েন স্ট্রিং
অতিরিক্তভাবে, আপনি join() এবং split() মেথড ব্যবহার করে পাইথনে স্ট্রিং ম্যানিপুলেট করতে পারেন।
join() মেথড একটি ইটেরেবল স্ট্রিং-এর সকল আইটেম নেয় এবং সেগুলো অন্য একটি স্ট্রিং-এর সাথে জয়েন করে। join() পাইথন স্ট্রিং মেথড একশনে উদাহরণ:
string = "String" "X".join(string)
আমাদের কোড রিটার্ন করে: SXtXrXiXnXg। যা হয়েছে সেটি হলো join() স্ট্রিং string ভেরিয়েবলের প্রতিটি লেটারের মধ্য দিয়ে গিয়ে প্রতিটি লেটারের পরে একটি X যোগ করল।
join() মেথড উপকারী যদি আপনি একটি নির্দিষ্ট ভ্যালু একটি স্ট্রিং-এর সাথে জয়েন করতে চান। এই মেথডটি প্রায়শি স্ট্রিং-এর একটি লিস্ট কাম্বাইন করতে ব্যবহৃত হয়। join() ব্যবহার করে একটি লিস্টের স্ট্রিং একসাথে কম্বাইন করার উদাহরণ:
print(",".join(["Lucy", "Emily", "David"])
আমাদের কোড রিটার্ন করে: Lucy,Emily,David। এখন আমাদের নামের লিস্ট একটি স্ট্রিং-এ আছে, অ্যারে-এ নয়।
আমরা split() স্ট্রিং মেথডও ব্যবহার করতে পারি একটি স্ট্রিং স্প্লিট আপ করতে এবং একটি স্ট্রিং লিস্ট রিটার্ন করতে। split() মেথড ব্যবহার করে একটি সেন্টেন্সকে স্ট্রিং লিস্টে ভাগ করার উদাহরণ:
example_sentence = "This is a sentence." print(example_sentence.split())
আমাদের কোড রিটার্ন করে:
["This", "is", "a", "sentence."]
আপনি দেখতে পাচ্ছেন, আমাদের অরিজিনাল স্ট্রিং চারটি আইটেমে ভাগ হয়েছে এবং সেই আইটেমগুলোর একটি নতুন লিস্ট তৈরি হয়েছে।
split() মেথড যদি অন্য কোনো প্যারামিটার স্পেসিফাই না করা থাকে, হোয়াইটস্পেস ক্যারেক্টার দিয়ে সেপারেট করা স্ট্রিং লিস্ট রিটার্ন করে, কিন্তু আপনি যদি অন্য কোনো ক্যারেক্টার দিয়ে স্ট্রিং স্প্লিট করতে চান, তবে করতে পারেন। একটি স্ট্রিংকে সেটির কমা দিয়ে ভাগ করার প্রোগ্রাম উদাহরণ:
names = "Lucy,Emily,David"
print(names.split(","))
আমাদের কোড রিটার্ন করে:
["Lucy", "Emily", "David"]
আপনি দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম আমাদের ইনিশিয়াল স্ট্রিং-এ থাকা কমা ভ্যালু দিয়ে স্ট্রিংগুলো আলাদা করল এবং নতুন আলাদা ভ্যালুগুলোর সাথে একটি অ্যারে তৈরি করল।
এই টিউটোরিয়ালের Repl.it দেখুন:
উপসংহার
স্ট্রিং একটি উপকারী ডেটা টাইপ যা কোডারদের তাদের প্রোগ্রামে টেক্সট ভ্যালু সংরক্ষণ করতে দেয়। এই টিউটোরিয়ালে, আমরা পাইথনে স্ট্রিং ম্যানিপুলেট করতে ব্যবহার করা যেতে পারে কিছু সবচেয়ে কমন বিল্ট-ইন স্ট্রিং মেথড এক্সপ্লোর করেছি।
আমরা upper() এবং lower() মেথড এবং কীভাবে সেগুলো পাইথনে কেস নিয়ে কাজ করতে সাহায্য করে, len() মেথড এবং কীভাবে এটি একটি স্ট্রিং-এর লেন্থ বের করতে সাহায্য করে, এবং পাইথনে উপলব্ধ বুলিয়ান স্ট্রিং মেথড এক্সপ্লোর করেছি।
আমরা join() এবং split() কীভাবে ব্যবহার করতে হয়, এবং কীভাবে চেক করতে হয় একটি স্ট্রিং সাবস্ট্রিং দিয়ে শুরু বা শেষ হয় কিনা সেটিও আলোচনা করেছি।
দরকার নোট করা যে, আরও অনেক স্ট্রিং মেথড আছে যেমন ljust(), rjust(), এবং zfill(), এবং এই আর্টিকেল শুধু поверхটি ছুঁয়েছে। এখন আপনি পাইথনে স্ট্রিং নিয়ে এক্সপার্টের মতো কাজ শুরু করতে পারেন!