Python Data Types Part-1: Strings in Python

Last Updated on June 9, 2018 by

String in Python

String in Python

পাইথনে String কি?

এক সঙ্গে অনেকগুলো character বা এক বা একাধিক word এর সমষ্টিকে প্রোগ্রামিং এর পরিভাষায় String বলা হয়ে থাকে। পাইথনে String খুবই গুরুত্বপূর্ণ একটি ডেটা টাইপ। পাইথনে যে কোন Sentence কেই String হিসেবে ব্যবহার করা যায়। পাইথনে তিন ভাবে String কে রিপ্রেজেন্ট করা যায়। সে গুলো হচ্ছে Single Quotation (‘ ‘), Double Quotation (” “) এবং Three Quotation (“”” “””) এর মাধ্যমে। আপনি যদি পাইথন কনসোলে নিচের মত করে বাক্য লিখে এন্টার প্রেস করেন তাহলে আউটপুটে সেই বাক্যকে দেখতে পাবেন।

>>> 'This is a String with Single Quotation'
'This is a String with Single Quotation'
>>> "This is a Another String with Double Quotation"
'This is a Another String with Double Quotation'
>>> """This is Extra String with Three Quotation"""
'This is Extra String with Three Quotation'
>>> 

লক্ষণীয়, ইনপুট দেয়ার সময় ডাবল বা সিঙ্গেল কোটেশন যাই ব্যবহার করা হোক না কেন, আউটপুটের সময় সিঙ্গেল কোট দিয়ে সেই স্ট্রিং কে দেখায়।

কিছু Character কে সরাসরি একটি String এর মধ্যে ব্যবহার করা যায় না। যেমন, Double Quote (” “) দিয়ে নির্দেশ করা একটি String এর মধ্যে Double Quote (” “)থাকতে পারবেনা একইভাবে Single Quote (‘ ‘) দিয়ে নির্দেশ করা একটি String এর মধ্যে Single Quote (‘ ‘)থাকতে পারবেনা । আর এর জন্য পাইথন আপনাকে এরর প্রদর্শন করবে। আর তাই এরকম Character গুলোর সামনে একটি Backslash (\) চিহ্ন দিয়ে Escape করে দিতে হবে। যেমন:

>>> 'Rizvi once said: "I\'ll be back"'
'Rizvi once said: "I\'ll be back"'
>>> "Ashiq once said: \"I'll be back\""
'Ashiq once said: "I\'ll be back"'

পাইথনে যদি একাধিক লাইন সম্বলিত কোনো String কে তিনটি করে কোটেশন (“”” “””)এর মধ্যে ডিফাইন করা হয়, তাহলে newline Character (\n) ম্যানুয়ালি লেখার দরকার পরে না । নিচের উদাহরণটি দেখি:

>>> """ Hello How\'re you?
Yes, I'm Fine"""
" Hello How're you?\nYes, I'm Fine"

লক্ষ্য করুন উপরে, দুই লাইনের একটি string কে ইনপুট হিসেবে দিয়েছি এবং আউটপুটে দেখা যাচ্ছে সে string এর মধ্যে যেখানে নতুন লাইন দরকার সেখানে পাইথন স্বয়ংক্রিয় ভাবে \n ক্যারেক্টার বসিয়ে দিয়েছে।

Special Escape Sequence
কিছু প্রচলিত এস্কেইপ সিকুয়েন্স নিচে দেওয়া হলো –

সিকুয়েন্স পরিচিতি
\\ একটা ব্যাকস্ল্যাশ
\' সিঙ্গল কোট (‘)
\" ডাবল কোট (“)
\a বেল
\b ব্যাকস্পেইস
\f ফর্মফিড
\n লাইন ব্রেক
\N{name} ইউনিকোড ক্যারেক্টার এর নাম
\r ASCII ক্যারিজ রিটার্ন (ম্যাক ওস এক্স এ নিউ লাইন ক্যারেক্টার)
\t ট্যাব
\uxxxx ১৬ বিট হেক্সাডেসিম্যাল ভ্যালু সম্বলিত ইউনিকোড ক্যারেক্টার
\Uxxxxxxxx ৩২ বিট হেক্সাডেসিম্যাল ভ্যালু বিশিষ্ট ইউনিকোড ক্যারেক্টার
\v ভার্টিক্যাল ট্যাব
\ooo `ooo` অক্টাল ভ্যালু বিশিষ্ট ক্যারেক্টার
\xhh `hh` হেক্সাডেসিম্যাল ভ্যালুওয়ালা ক্যারেক্টার

String Operation

Accessing Characters in Strings (স্ট্রিং এর মধ্যে প্রতিটি Character এ Access)

যদিও পাইথনে character data type সাপোর্ট করেনা, তবে আপনি চাইলে substring হিসেবে string এর ইনডেক্স ধরে একটি নির্দিষ্ট অংশ বা যেকোনো character কে print করতে পারেন। নিচের উদাহরণটি দেখুন :

>>> str="Hello World"
>>> print(str[0])
H
>>> print(str[0:3])
Hel
>>> print (str[0:-3])
Hello Wo

ব্যাখ্যা: প্রথম print এ আমরা একটা নির্দিষ্ট character কে print করি , আর দ্বিতীয় print এ আমরা string এর কত টুকু দেখাবো তা index নম্বর দিয়ে বলে দেই।

Updating Strings (String এর একটি নির্দিষ্ট অংশ পরিবর্তন করা )

index ধরে আপনি খুব সহজে string এর বিভিন্ন অংশে পরিবর্তন আনতে পারেন, নিচের উদাহরণ লক্ষ্য করুন :

>>> str="Hello World"
>>> print ("Updated String :- ", str[:6] + 'Python')
Updated String :-  Hello Python

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

দুই বা ততোধিক string কে একটির সাথে আরেকটি জোড়া লাগানোর জন্য plus sign (+) ব্যবহৃত হয়, আর এটাকে বলা হয় কনক্যাটেনেশন (Concatenation). নিচের উদাহরণে লক্ষ্য করুন :

>>> "Khalid "+"Sahin"
'Khalid Sahin'
>>> print("First Name" + ", " + "Last Name")
First Name, Last Name
>>> firstName="Masud"
>>> lastName="Alam"
>>> print(firstName + ", " + lastName)
Masud, Alam

উল্লেখ্য, মনে রাখতে হবে কোন নাম্বারের সাথে স্ট্রিং কনক্যাটেনেশন (Concatenation) করা যাবে না।

  >>> 5+"5"
Traceback (most recent call last):
  File "<pyshell#37>", line 1, in 
    5+"5"
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> print (5+"5")
Traceback (most recent call last):
  File "<pyshell#38>", line 1, in 
    print (5+"5")
TypeError: unsupported operand type(s) for +: 'int' and 'str'

স্ট্রিং রিপিটেশন (Repetition)

একটি String কতবার repeat করে প্রদর্শন করবেন, তা পাইথনে খুব সহজেই করা যায়, আর এর জন্য আপনাকে multiplication sign (*) টি ব্যবহার করতে হবে। চলুন নিচের উদাহরণ দেখে বুঝে নেওয়া যাক :

>>> print ("Hello "*3)
Hello Hello Hello 
>>> print("10 "*3)
10 10 10 
>>> print ("*"*10)
**********

Finding Substring in a String (String এর একটি নির্দিষ্ট অংশ খোঁজা)

String এর একটি নির্দিষ্ট অংশ খোঁজার জন্য আপনি String এর in Operator ব্যবহার করতে পারেন। নিচের উদাহরণ দেখুন :

>>> str="Hello World"
>>> "W" in str
True

একই ভাবে not in operator দিয়ে কোনো অংশ নাই তা নিশ্চিত করতে পারেন। নিচের উদাহরণ দেখুন :

>>> str="Hello World"
>>> "Python" not in str
True

String Formatting Operator

পাইথনে একটি String এর format Operator (%) টি হচ্ছে সবচেয়ে দারুন Operator , যা দিয়ে আপনি C Language এর printf function এর মতো string এর অনেক ধরণের formatting এর কাজ করতে পারেন, চলুন নিচে কয়েকটি উদাহরণ দিয়ে বিষয়টি বুঝে নিয়ে যাক :

>>> print ("My name is %s and weight is %d kg!" % ('Masud Alam', 90))
My name is Masud Alam and weight is 90 kg!

নিচে formatting Operator (%) গুলোর সব গুলো symbol লিস্ট দেওয়া হলো :

Format Symbol Conversion
%c formatted character প্রদর্শনের জন্য
%s formatted String প্রদর্শনের জন্য
%i formatted signed decimal integer প্রদর্শনের জন্য
%d formatted signed decimal integer প্রদর্শনের জন্য
%u formatted unsigned decimal integer প্রদর্শনের জন্য
%o formatted signed octal integer প্রদর্শনের জন্য
%x formatted hexadecimal integer (lowercase letters) প্রদর্শনের জন্য
%X formatted hexadecimal integer (Uppercase letters) প্রদর্শনের জন্য
%e formatted exponential notation (with lowercase ‘e’) প্রদর্শনের জন্য
%E formatted exponential notation (with UPPERcase ‘E’) প্রদর্শনের জন্য
%f formatted floating point real number প্রদর্শনের জন্য
%g the shorter of %f and %e প্রদর্শনের জন্য
%G the shorter of %f and %E প্রদর্শনের জন্য

Leave a Reply