কম্পিউটার

পাইথন স্ট্রিংস:পাইথনের সবচেয়ে জনপ্রিয় ডেটা টাইপগুলির মধ্যে একটি

স্ট্রিংগুলি পাইথনের সবচেয়ে জনপ্রিয় ডেটা টাইপগুলির মধ্যে একটি। একটি স্ট্রিং, একটি উচ্চ স্তরে, অক্ষরগুলির একটি ক্রম নিয়ে গঠিত একটি বস্তু। একটি অক্ষর একটি প্রতীক - উদাহরণস্বরূপ, ইংরেজি ভাষায় তাদের বর্ণমালায় 26টি অক্ষর রয়েছে।

পাইথন স্ট্রিং তৈরি করা এবং পরিচালনা করা সহজ। আপনি অবিলম্বে এখন এটি করতে শেখা শুরু করতে পারেন। এই নিবন্ধটি পাইথনের স্ট্রিংগুলি, তারা কীভাবে কাজ করে এবং সেগুলিতে ব্যবহৃত সাধারণ ক্রিয়াকলাপগুলির দিকে নজর দেয়৷

পাইথনে স্ট্রিং কি?

আপনি পাইথনে একটি স্ট্রিং তৈরি করতে পারেন কেবলমাত্র উদ্ধৃতিগুলিতে অক্ষরগুলি সংযুক্ত করে — যা একক (') বা দ্বিগুণ (“) উদ্ধৃতি হতে পারে। একটি ভেরিয়েবলে বরাদ্দ করে একটি স্ট্রিং শুরু করুন এবং ঘোষণা করুন:

doubleQuoteString = "I'm a string"
singleQuoteString = 'I\'m a string' # needs escaped single quote to treat it as a string value as opposed to end of input. 

মনে রাখবেন:যদি আপনি একটি স্ট্রিং এর ভিতরে একটি apostrophe ব্যবহার করতে চান যেটি একক উদ্ধৃতিতে এনক্যাপসুলেট করা আছে, তাহলে আমাদের এটিকে "\" দিয়ে এড়িয়ে যেতে হবে। এটি উদ্ধৃতিটিকে স্ট্রিংয়ের অংশ হিসাবে বিবেচনা করবে, স্ট্রিংয়ের শেষের বিপরীতে।

ডকস্ট্রিং এবং মাল্টি-লাইন স্ট্রিংস

ডকস্ট্রিং হল পাইথনের অন্য ধরনের স্ট্রিং। এগুলি ট্রিপল কোট (""") এ আবদ্ধ এবং একটি ফাংশন বা ক্লাসের প্রথম লাইনে একটি বহু-লাইন মন্তব্য হিসাবে বিবেচিত হয়৷

def printString(str):
 ''' takes in a string and prints it to the console '''
 print(str)

একটি ডকস্ট্রিং একটি কোড ব্লকের উদ্দেশ্য কী তা বর্ণনা করে। আপনি যদি আপনার যুক্তিতে ডকস্ট্রিং ব্যবহার করতে চান তবে আপনি একটি ভেরিয়েবলে ডকস্ট্রিং বরাদ্দ করে করতে পারেন। যদি একটি ভেরিয়েবলে বরাদ্দ করা হয়, ডকস্ট্রিং একটি মাল্টি-লাইন স্ট্রিং হয়ে যায়।

multiline = '''     I'm a multi-line string that can be assigned to a variable. The format
follows exactly
   the
         way
             YOU
                 input it. 
                
                
                 '''
print(multiline)

মাল্টি-লাইন স্ট্রিংটি ট্রিপল উদ্ধৃতিগুলির মধ্যে বিন্যাস অনুসরণ করবে। পরিবর্তনশীল অ্যাসাইনমেন্ট ছাড়া, স্ট্রিংটিকে একটি মন্তব্য হিসাবে বিবেচনা করা হবে এবং এড়িয়ে যাওয়া হবে৷

কাঁচা স্ট্রিংস

পাইথন কাঁচা স্ট্রিং নামে একটি ধারণা ব্যবহার করে। এই ধারণাটি স্ট্রিং-এর ভিতরে আপনি যেভাবে লিখেছেন সেভাবে সবকিছুকে আচরণ করে — ব্যাকস্ল্যাশ, বিশেষ করে, একটি পালানোর ক্রম হিসাবে ব্যবহার করা হয় না। এখানে একটি তুলনা:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

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

notRaw = "I'm a not a raw string, and escape chars DO matter \n\r\t\b\a"
rawString = r"I'm a raw string, where escape chars don't matter \n\r\t\b\a"
print(notRaw) # I'm not a raw string, and escape chars DO matter.
 
print(rawString) # I'm a raw string, where escape chars don't matter \n\r\t\b\a

কাঁচা স্ট্রিংটি r:

অক্ষরের সাথে উপসর্গযুক্ত একটি নিয়মিত স্ট্রিং দ্বারা প্রতিনিধিত্ব করা হয়

r”এটি একটি কাঁচা স্ট্রিং”

যখন আপনার ব্যাকস্ল্যাশের প্রয়োজন হয় তখন কাঁচা স্ট্রিংটি ব্যবহার করুন যাতে কোনও ধরণের বিশেষ এস্কেপড সিকোয়েন্স না বোঝা যায়।

স্ট্রিংয়ে ইউনিকোড অক্ষর

ইউনিকোড হল একটি ক্যারেক্টার স্পেসিফিকেশন যার লক্ষ্য হল যে কোন ভাষার দ্বারা ব্যবহৃত প্রতিটি একক অক্ষরকে তার নিজস্ব কোড বরাদ্দ করা। বেশিরভাগ ডকুমেন্টেশনে, ইউনিকোড মানগুলি দ্বারা প্রতিনিধিত্ব করা হয়:

U+<ইউনিকোড হেক্স মান> ⇒ U+2661 ⇒ ♡

U+2661 হল আমাদের ব্যবহারের জন্য উপলব্ধ এক ধরনের ইউনিকোড অক্ষরের একটি উদাহরণ। বিশ্বের সমস্ত ভাষাকে প্রতিনিধিত্ব করে যেগুলি থেকে বেছে নেওয়ার জন্য হাজার হাজার অক্ষর রয়েছে৷

পাইথন 3 এ ইউনিকোড লেখা

পাইথন 3-এ ইউনিকোড অক্ষর লিখতে, একটি নিয়মিত স্ট্রিং-এ একটি এস্কেপ সিকোয়েন্স ব্যবহার করুন যা \u দিয়ে শুরু হয় এবং অক্ষরের জন্য নির্ধারিত কোড দিয়ে শেষ হয় (যে নম্বরটি “+”-এর পরে আসে)।

unicodeString = '\u2661'
print(unicodeString) # ♡ 

আপনি একটি সারিতে যতগুলি চান ততগুলি ইউনিকোড অক্ষর চেইন করতে পারেন।

একটি নিয়মিত স্ট্রিং-এ ইউনিকোড ব্যবহারের এই প্রক্রিয়াটি পাইথন 2 থেকে আপডেট করা হয়েছে। পুরানো সংস্করণগুলিতে, আপনার একটি স্বতন্ত্র ইউনিকোড স্ট্রিং থাকতে হবে যা u’\u<unicode number here>’ দিয়ে শুরু হয়েছিল। যেহেতু পাইথন 2 ASCII মান এবং ইউনিকোড মান ব্যবহার করেছে।

স্ট্রিং-এ মানগুলি কীভাবে অ্যাক্সেস করবেন

পাইথনের একটি স্ট্রিং-এর মান অ্যাক্সেস করতে আমরা বর্গাকার বন্ধনী ব্যবহার করি। স্ট্রিংগুলি অন্যান্য প্রোগ্রামিং ভাষার মতোই শূন্য-ভিত্তিক। এর মানে স্ট্রিংয়ের প্রথম অক্ষরটি জিরোথ সূচকে শুরু হয়।

hello = "hello world"
 
print(hello[4]) # o

হ্যালোতে চতুর্থ সূচক প্রিন্ট করলে কনসোলে "o" প্রিন্ট হবে। আপনি যদি এমন একটি সূচী অ্যাক্সেস করার চেষ্টা করেন যা স্ট্রিংয়ের একটি অংশ নয়, আপনি দেখতে পাবেন IndexError: string index out of range . এই ত্রুটির মানে হল আপনি এমন একটি সূচক অ্যাক্সেস করার চেষ্টা করছেন যা আপনার কাছে থাকা সূচকের সংখ্যার চেয়ে বড় বা কম।

দ্রষ্টব্য: আপনি যদি সি বা জাভার মতো একটি প্রোগ্রামিং ভাষা থেকে আসছেন, তাহলে আপনি তাদের নিজস্ব ডেটা টাইপের অক্ষরগুলিতে অভ্যস্ত। পাইথনের ক্ষেত্রে এটি নয় - পৃথক অক্ষরগুলিকে কেবল একটি দৈর্ঘ্য সহ একটি সাবস্ট্রিং হিসাবে বিবেচনা করা হয়।

একটি স্ট্রিং-এ একাধিক অক্ষর অ্যাক্সেস করা

একবারে একটি স্ট্রিংয়ে একাধিক অক্ষর অ্যাক্সেস করতে স্ট্রিং স্লাইসিং ব্যবহার করুন। সিনট্যাক্স হল:

string_name[first_index? : another_index?]

শেষ সূচকটি অ-অন্তর্ভুক্ত। Hello[1:3] আগের উদাহরণে el ফিরে আসবে এবং ell নয় .

পাইথনে স্লাইসিং সম্পর্কে আকর্ষণীয় বিষয় হল যে সূচকের মানগুলিকে স্লাইস করার প্রয়োজন নেই।

এখানে পাইথনে স্ট্রিং কাটার সাধারণ উপায় রয়েছে:

  • string_name[:]

    বর্গাকার বন্ধনীর ভিতরে একটি কোলন ব্যবহার করে একটি অনুলিপি তৈরি করতে পুরো স্ট্রিংটি কেটে ফেলা হবে৷
hello = "hello world"
copy = hello[:] + " ⇐ whole string"
print(copy) # hello world ⇐ whole string
  • string_name[first_index:]

    বর্গাকার বন্ধনীর ভিতরে খালি রেখে শেষ সূচকের মান না জেনেই আপনি স্ট্রিংয়ের ভিতরের একটি সূচক থেকে শেষ পর্যন্ত স্লাইস করতে পারেন।
hello = "hello world"
copy = hello[2:] + " ⇐ An index to end of string"
print(copy) # llo world ⇐ An index to end of string
  • string_name[:second_index]

    প্রথম থেকে অন্য সূচীতে স্লাইসিং করা হয় যেখানে প্রথম সূচকটি বন্ধনীতে যাবে সেটি খালি রেখে।
hello = "hello world"
copy = hello[:7] + " ⇐ beginning to index inside of string"
print(copy) # hello w ⇐ beginning to index inside of string
  • string_name[first_index:second_index]

    মনে রাখবেন যে স্লাইস পদ্ধতিটি অ-অন্তর্ভুক্ত নয় যদি আপনার দুটি নির্দিষ্ট সূচী থাকে যা আপনি স্লাইস করতে চান। সুতরাং আপনি যদি সূচী 1 থেকে সূচী 6 তে স্ট্রিং চান তবে আপনি আসলে এটিকে hello[1:7] হিসাবে ফর্ম্যাট করতে চাইবেন .
hello = "hello world"
copy = hello[1:7] + " ⇐ first index to another index"
print(copy) # ello w ⇐ beginning to another index inside of string

নেতিবাচক সংখ্যাও ব্যবহার করা যেতে পারে:

hello = "hello world"
copy = hello[-7:-2] + " ⇐ negative indexes"
print(copy) # o wor ⇐ negative indexes

স্ট্রিং স্লাইসিং ব্যবহার করা দুর্দান্ত যখন আপনি স্ট্রিংটি ম্যানিপুলেট করতে চান, কিন্তু আসল স্ট্রিংটি পরিবর্তন করবেন না। এটি নির্বাচিত সূচীগুলির মেমরিতে নিজস্ব অনুলিপি তৈরি করে যাতে আপনি মূল স্ট্রিং পরিবর্তন না করেই সেগুলি আপডেট করতে পারেন৷

পাইথনে স্ট্রিংগুলির মাধ্যমে কীভাবে লুপ করবেন

পাইথনে, আমরা স্ট্রিংগুলিকে একইভাবে পরিচালনা করি যেভাবে আমরা অ্যারেগুলি পরিচালনা করি। আমরা স্ট্রিংগুলির মাধ্যমে লুপ করতে পারি ঠিক যেমনটি আমরা অ্যারের জন্য করতে পারি for…in সিনট্যাক্স ব্যবহার করে:

#for...in syntax
for <index> in <string>:
   #do logic here
 
 
#example
word = "career karma"
 
for letter in word:
   print(letter)    #prints each individual letter on each iteration

আমরা "ক্যারিয়ার কর্মের" মাধ্যমে লুপ করার জন্য -এ 'অক্ষর' এবং -এ 'শব্দ' বরাদ্দ করি। প্রতিটি পুনরাবৃত্তিতে, এটি কনসোলে সেই পুনরাবৃত্তিতে অক্ষরটি প্রিন্ট করবে।

কিভাবে একটি স্ট্রিং এর দৈর্ঘ্য খুঁজে বের করতে হয়

একটি স্ট্রিংয়ের দৈর্ঘ্য খুঁজে পেতে, len() ব্যবহার করুন পদ্ধতি

lenExample = "The quick brown fox jumps over the lazy dog."
print(len(lenExample))

আপনার কোডের অন্য কোথাও লেন কীওয়ার্ড ব্যবহার করবেন না। দোভাষী আপনার নামের ভেরিয়েবলের সাথে ফাংশনটিকে বিভ্রান্ত করবে।

কিভাবে 'ইন' এবং 'নট ইন' ব্যবহার করবেন

স্ট্রিং-এ কিছু আছে কিনা তা পরীক্ষা করার জন্য আপনি পাইথন স্ট্রিং-এর মধ্যে এবং না-তে কীওয়ার্ড ব্যবহার করতে পারেন।

checkString = "Career Karma will help you make a career switch to the tech industry"

চেকস্ট্রিং হল সেই স্ট্রিং যা আমরা পরবর্তী দুটি উদাহরণের জন্য ব্যবহার করতে যাচ্ছি৷

এ ব্যবহার করা হচ্ছে

in আপনার সার্চ টার্ম ভেরিয়েবলের জন্য নির্ধারিত স্ট্রিং-এ আছে কিনা তা আপনি জানতে চান পাইথন ইন্টারপ্রেটারকে বলে স্ট্রিং-এ কিছু আছে কি না তা পরীক্ষা করতে কীওয়ার্ড ব্যবহার করা যেতে পারে।

print("tech" in checkString) # True

পাইথন শেখার জন্য একটি পছন্দসই ভাষা কারণ এটি সহজে পঠনযোগ্য। এখানে সিনট্যাক্সটি মূলত আপনি যদি অন্য ব্যক্তিকে জিজ্ঞাসা করেন তবে আপনি কীভাবে সেই প্রশ্নটি জিজ্ঞাসা করতে পারেন:

প্রশ্ন:"চেকস্ট্রিং-এ কি "প্রযুক্তি" আছে? (চেকস্ট্রিং-এ "টেক")

(স্ক্যান স্ট্রিং)

A:"হ্যাঁ, হ্যাঁ এটা।" (সত্য)

ব্যবহার করা হচ্ছে না

not in মূল বাক্যাংশ পরীক্ষা করে যে কিছু একটা স্ট্রিং-এ নেই কিনা। এটি মনকে ঘিরে রাখতে বিভ্রান্তিকর হতে পারে, তাই মনোযোগ দিন। এখানে, যখন আপনি জিজ্ঞাসা করবেন যে কিছু একটি স্ট্রিং-এ নেই, এটি স্ট্রিং-এ না থাকলে এটি "True" বা স্ট্রিং-এ থাকলে "False" প্রদান করবে।

print("tech" not in checkString) # False

আমরা অন্য ব্যক্তির সাথে কথা বললে আমরা এই বাক্য গঠনটি কীভাবে পড়তে পারি তা এখানে:

প্রশ্ন:"প্রযুক্তি" কি চেকস্ট্রিং-এ নেই? (“টেক” চেকস্ট্রিং-এ নেই)

(স্ক্যান স্ট্রিং)

A:"না। "প্রযুক্তি" শব্দটি চেকস্ট্রিং-এ রয়েছে (ফলস)

আমরা কি একটি স্ট্রিং এর মেকআপ পরিবর্তন করতে পারি?

পাইথনের স্ট্রিংগুলি অপরিবর্তনীয়। যে অক্ষরগুলি স্ট্রিং তৈরি করে সেগুলিকে প্রাথমিক অ্যাসাইনমেন্ট করার পরে কোনও উপায়ে পরিবর্তিত বা পরিবর্তন করা যায় না৷

delString = "Can we delete this or change this?"
delString[2] = "b"
print(delString)

আপনার পাইথন ইন্টারপ্রেটারে এই কোডটি চালানোর চেষ্টা করুন। এই ত্রুটির ফলাফল হবে:

Traceback (most recent call last):
 File "main.py", line no., in <module>
   delString[2] = "b"
TypeError: 'str' object does not support item assignment

এখানে TypeError আমাদের বলে যে পাইথনের স্ট্রিংগুলি অক্ষরগুলিকে পুনরায় বরাদ্দ করার অনুমতি দেয় না। আপনি যদি পৃথক অক্ষরগুলি পুনরায় বরাদ্দ করতে চান তবে আপনি যে নতুন স্ট্রিংটি তৈরি করতে চান তার পুরো স্ট্রিংটিকে পুনরায় বরাদ্দ করতে হবে৷

delString = delString[:2] + "b" + delString[3:]
 
print(delString)

delString[2] = “b” দিয়ে আমরা যা করতে চেয়েছিলাম তা করার সঠিক উপায় এখানে কোড। কোড লাইন। একটি স্ট্রিং অবজেক্ট পরিবর্তন করার জন্য একটি সম্পূর্ণ রিসাইনমেন্ট প্রয়োজন।

এর মানে হল একটি স্ট্রিং এ একক অক্ষর মুছে ফেলা সম্ভব নয়। তবে, আপনি del দিয়ে একটি সম্পূর্ণ স্ট্রিং মুছে ফেলতে পারেন কীওয়ার্ড।

del delString
 
print(delString) #this will return an error or the linter will catch as being undefined

জনপ্রিয় স্ট্রিং পদ্ধতি

পাইথন স্ট্রিং এর সাথে যুক্ত বিভিন্ন পদ্ধতি আছে। সবচেয়ে আপ-টু-ডেট তালিকার জন্য, পাইথন ডক্স দেখুন।

এখানে সবচেয়ে জনপ্রিয় কিছু পদ্ধতি রয়েছে। testString একটি নমুনা স্ট্রিং যা বেশিরভাগ পদ্ধতি প্রদর্শন করতে ব্যবহার করা হবে।

testString = "this is a test string."

কপিটালাইজ()

ক্যাপিটালাইজ পদ্ধতিটি স্ট্রিং এর প্রথম অক্ষরটিকে বড় আকার দেবে:

capitalized = testString.capitalize()
print(capitalized) # This is a test string

খুঁজুন()

এই অন্তর্নির্মিত পদ্ধতিটি যেখানে পাস করা আর্গুমেন্ট শুরু হয় তার সূচী প্রদান করবে। যদি এটি খুঁজে না পাওয়া যায় তবে এটি -1 ফেরত দেয়।

found = testString.find("test")
notfound = testString.find("not")
 
print(found) # 10
print(notfound) # -1

যোগ দিন()

যোগদান পদ্ধতিটি পদ্ধতিতে পাস করা পুনরাবৃত্তিযোগ্য বস্তুটি নিয়ে যাবে (একটি স্ট্রিং, একটি সেট, একটি টিপল বা একটি তালিকা হতে পারে), এটির মধ্য দিয়ে লুপ করবে এবং স্ট্রিং বিভাজকটি যুক্ত করবে যেটি পদ্ধতিটি কল করা হয়েছে। এখানে একটি উদাহরণ:

separator = ", " # this is our separator - this string is the one that the method gets called on
numbers = "123" # this is our iterable. In this instance, it is a string
 
joinedByComma = separator.join(numbers)
print(joinedByComma) # 1, 2, 3

আপনি তালিকা, সেট, বা টিপলসের মতো অন্যান্য পুনরাবৃত্তির সাথে কী করতে পারেন তা দেখতে যোগদানের পদ্ধতিতে খেলার চেষ্টা করুন!

নিম্ন() এবং উপরের()

নীচের এবং উপরের বিল্ট-ইন ফাংশনগুলি স্ট্রিংয়ের ক্ষেত্রে কাজ করে। Lower সমস্ত ছোট হাতের অক্ষরে স্ট্রিংয়ের একটি অনুলিপি তৈরি করবে; upper সমস্ত বড় হাতের অক্ষরে স্ট্রিংয়ের একটি অনুলিপি তৈরি করবে:

uppercase = testString.upper()
print(uppercase) # THIS IS A TEST STRING
 
lowercase = testString.lower() 
print(lowercase) # this is a test string

এই পদ্ধতিগুলি হল কয়েকটি পদ্ধতি যা আপনি ব্যবহার করতে পারেন যখন এটি স্ট্রিং ম্যানিপুলেট করার ক্ষেত্রে আসে। এগুলি শেখার পরে, অন্যান্য পাইথন স্ট্রিং পদ্ধতি যেমন split() দেখুন , replace() , title() , এবং swapcase() .

উপসংহার

এই নিবন্ধে, আমরা পাইথন স্ট্রিংগুলি কী, সেগুলি কীভাবে ব্যবহার করা হয় এবং আমাদের ব্যবহারের জন্য উপলব্ধ কিছু অন্তর্নির্মিত পদ্ধতিগুলি দেখেছি। আপনি এই নির্দেশিকাটি আয়ত্ত করার পরে, আপনার শিক্ষাকে আরও এগিয়ে নিতে পাইথনে স্ট্রিং বিন্যাসের উপর আমাদের নিবন্ধটি দেখুন!


  1. পাইথন 3-এ স্ট্যান্ডার্ড ডেটা টাইপগুলি কী কী?

  2. পাইথনে সবচেয়ে দক্ষ স্ট্রিং কনক্যাটেনেশন পদ্ধতি কি?

  3. পাইথন ডেটা টাইপ এবং টাইপ কনভার্সন

  4. পাইথন স্ট্রিংস - বেসিক স্ট্রিং অপারেশনের ওভারভিউ