পাইথনের স্ট্রিং এবং স্ট্রিং মেথড ( All about String & String Methods in Python )

 



এই পর্বে আমরা দেখবো কিভাবে পাইথনে স্ট্রিং তৈরী করতে হয়, ফরম্যাট করতে হয়, মডিফাই করতে হয়, ডিলেট করতে হয়। তাছাড়া স্ট্রিং এর বিভিন্ন অপারেশন , ফাংশন বা মেথডের সাথে আমরা পরিচিত হব।

পাইথন এ স্ট্রিং (String) কি?

স্ট্রিং হলো কিছু ধারাবাহিক ক্যারেক্টার (বর্ণ, সংখ্যা, চিহ্ন ইত্যাদি হতে পারে )

"A string is a sequence of characters."
যেমন টা  বিভিন্ন ভাষায় বর্ণমালা থাকে, ইংরেজি তে ২৬ টা, ওরকম চিহ্ন বা বর্ণ গুলো ক্যারেক্টার। 
মজার ব্যপার হচ্ছে কম্পিউটার কিন্তু এসব বর্ন, চিহ্ন কিছুই বুঝে না। ও যা বুঝে তা হচ্ছে, সংখ্যা। আরো স্পেসিফিক করে বললে বাইনারি সংখ্যা। অর্থাৎ ০, ১ ছাড়া কম্পিউটার আর কিছুই বুঝে না। তাহলে কম্পিউটার কে এসব বর্ন, চিহ্ন ইত্যাদি বোধগম্য করাতে হলে কি করতে হবে? 
হ্যা, এই বোধগম্য করার মাধ্যমে রুপান্তর করাকেই বলা হয় এনকোডিং (encoding). অর্থাৎ ক্যারেক্টার থেকে বাইনারি সংখ্যায় রুপান্তর কে বলা হয় এনকোডিং। আর এর উল্টো কাজ, মানে বাইনারি সংখ্যা থেকে আবার ক্যারেক্টার এ রুপান্তর করাকে বলা হয় ডিকোডিং (Decoding). 
পাইথনের স্ট্রিং এর ক্যারেক্টার গুলো হচ্ছে ইউনিকোড (Unicode) ক্যারেক্টার। অর্থাৎ সব ভাষার যত বর্ণ , চিহ্ন আছে সব এখানে ব্যবহার করা যাবে। 
আপিনি এখান থেকে ইউনিকোড (Python Unicode.) সম্পর্কে আরো বিস্তারিত জানতে পারবেন। 

কীভাবে পাইথনে স্ট্রিং তৈরী করব? 

এটা একদম একটি সহজ কাজ। আমি যেসব ক্যারেক্টার নিয়ে একটি স্ট্রিং তৈরী করতে চাই সেগুলোকে উদ্ধৃতি চিহ্ন বা Quotation চিহ্নের ভিতের রাখলেই তা একটি স্ট্রিং হয়ে যাবে। 
Single Quotation (' '), Double Quotation (" "), triple quotation (''' ''') এদের যেকোনো টি ব্যবহার করে আপনি স্ট্রিং তৈরী করতে পারবেন।  নিচের উদাহরণ দেখলেই আরো ভালো করে বুঝে যাবেন। 


# defining strings in Python 
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)
যখন আপনি এই প্রোগ্রাম রান বা চালু করবেন তখন নিচের মতো আউটপুট দেখতে পাবেন।

Hello
Hello
Hello
Hello, welcome to
           the world of Python
এইতো আপনি স্ট্রিং তৈরী করা শিখে ফেললেন। 

কীভাবে স্ট্রিং এর ক্যারেকটার গুলো কে অ্যাকসেস করব?

আমরা স্ট্রিং এর ভিতরে থাকা ক্যারেক্টারগুলোকে তাদের অবস্থানের ক্রমসংখ্যা বা ইনডেক্স (Index) ব্যবহার করে প্রত্যেকটি ক্যারেক্টার আলাদা আলাদা ভাবে অ্যাকসেস করতে পারবো। আবার চাইলে নির্দিষ্ট কোনো সীমা বা রেঞ্জ (Range) এর মধ্যে থাকা ক্যারেক্টার গুলোকে স্লাইস/টুকরা (Slice ) করে ও অ্যাকসেস করতে পারবো। 

মজার একটা ব্যপার হচ্ছে আমাদের দৈনন্দিন জীবনে ক্রমসংখ্যা বা ইন্ডেক্স শুরু হয় ১ থেকে। কিন্তু প্রায় সব প্রোগ্রামিং ভাষাতেই ইন্ডেক্স শুরু হয় ০ থেকে। ইন্ডেক্স করার সময় কেবল এই ব্যপারটি মাথায় রাখলেই হবে। 

যদি আমরা আমাদের স্ট্রিং ক্যারেক্টারগুলোর ইন্ডেক্স এর সীমার বাইরে কোনো কিছু অ্যাকসেস করতে চাই, তাহলে পাইথন ইন্টারপ্রেটার আমাদের কে এরর (ভুল) দেখাবে। বলবে যে IndexError

আরো একটি বিষয় হচ্ছে, আমরা যখন ইন্ডেক্স ব্যবহার করতে যাবো, তখন কিন্তু ইন্ডেক্স নাম্বার পূর্ণসংখ্যা বা Integer হতে হবে। অন্যথায় কি হবে? তখনো আরেক ধরনের এরোর পাবেন। ইন্টাপ্রেটার আপনাকে বলবে, TypeError  The index must be an integer. We can't use floats or other types.

এখন নিচের কোডগুলো লক্ষ্য করুন। তাহলে আরো সহজে বুঝে যাবেন। 


#Accessing string characters in Python
str = 'syedfaysel'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
এর আউটপুট হবে নিম্নরুপঃ 

str =  syedfaysel
str[0] =  s
str[-1] =  l
str[1:5] =  yedf
str[5:-2] =  ays

এখন যদি আপনি ইন্ডেক্স সীমার বাইরে কিছু অ্যাকসেস করতে চান, বা পূর্ণসংখ্যা ব্যতিত অন্য কোনো অবস্থানের (ইন্ডেক্স) ক্যারেক্টার অ্যাকসেস করতে চান তাহলে কি হবে দেখে নিন। 

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers

আগেই বলেছি, আপনি কিছু এরর দেখতে পাবেন। এরকম অনেক এরর আপনি মাঝে মাঝেই পাবেন। এগুলো ভালো করে পর্যবেক্ষন করতে হবে এবং বুঝতে হবে কি বলেছে আপনাকে। 
উপরের কোড এ আপনাকে বলেছে IndexError, আপনার দেয়া ইন্ডেক্স রেঞ্জ বা সীমার বাইরে, ইন্টারপ্রেটার ঐ ইন্ডেক্স খুজে পাচ্ছে না। আরেকটা এরর হচ্ছে TypeError, যেখানে আপনাকে বলেছে, আপনি পূর্ণসংখ্যা ব্যাতিত অন্য ভগ্নাংশ অবস্থানের বা ইন্ডেক্সের ক্যারেক্টার খুজার চেষ্টা করছেন যা ইন্টারপ্রেটার খুজে পাচ্ছে না এবং আপনাকে বলে দিচ্ছে, String indices must be integers. 

এখন দেখবো কিভাবে স্ট্রিং স্লাইস বা টুকরা কিছু সংখ্যক ক্যারেক্টার অ্যাকসেস করা যায়। 

স্লাইস করার জন্য যেটার করতে হবে তা হচ্ছে , প্রথমে আপনি কত নম্বর ইন্ডেক্স বা ক্রম থেকে Slice বা টুকরা করা শুরু করবেন এবং কত নম্বর ইন্ডেক্স পর্যন্ত স্লাইস করবেন তা বলে দিতে হবে। তাহলে পাইথন আপনার জন্য সেটা নিজে নিজে করে দিবে। ইতোমধ্যেই উপরের কোড এ তা দেখানো হয়েছে।


String Slicing in Python



Post a Comment

0 Comments