Skip to content

Latest commit

 

History

History
172 lines (127 loc) · 11 KB

File metadata and controls

172 lines (127 loc) · 11 KB

স্ট্রিং অপারেশনস

সিঙ্গল কোট, ডাবল কোট ও এস্কেইপ ক্যারেক্টার

পাইথনে সিঙ্গল বা ডাবল কোটেশন দুটোর মাধ্যমেই স্ট্রিং ডিফাইন করা যায় । তবে যেটি দিয়ে স্ট্রিং শুরু করবেন, শেষও করতে হবে সেটি দিয়েই । এক ধরণের কোটেশনের মধ্যে অন্য কোটেশন সরাসরি প্রিন্ট হয়ে যাবে । যে কোটেশন দিয়ে স্ট্রিং ব্যবহার করা হচ্ছে তার ভিতরে যদি ঐ কোটেশন চিহ্নটি কোন কারণে ব্যবহার করতে হয় তবে তার আগে একটি ব্যাক স্ল্যাশ ব্যবহার করতে হয় । আমরা কিছু উদাহরণ দেখি:

print "double quotation"
print 'here is the single'
print "single quote - ' in a double quoted string"
print 'double quotes - " in a single quoted string'

print "here comes the escaped quotes - \" "
print 'here is the single one - \' '

একটি ফাইলে এই কোড টাইপ করে রান করে দেখুন কি আউটপুট দেখায় । এখানে ব্যাকস্ল্যাশ ব্যবহার করে আমরা কোট টাকে এড়িয়ে যেতে পারি তাই এটাকে (\) পাইথনে এস্কেইপ ক্যারেক্টার বলা হয় ।

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

মল্টিলাইন স্ট্রিং

এই বিশেষ সিনট্যাক্সটি ব্যবহার করে আমরা পাইথনে সহজেই মাল্টিলাইন স্ট্রিং তৈরি করতে পারি ।

rochona = """The cow is a domestic animal. It has four legs and a long tail and 
We have a cow."""

print rochona

প্রিন্টিং

পাইথনে আমরা কোন আউটপুট দেখাতে চাইলে প্রিন্ট স্টেটমেন্টটি ব্যবহার করে থাকি । উদাহরন:

print "Hello world!"

লিস্ট হিসেবে ক্যারেক্টার এ্যাক্সেস

পাইথনে স্ট্রিং হলো ক্যারেক্টারের লিস্ট । তাই আমরা লিস্ট এ্যাক্সেস সিনট্যাক্স ব্যবহার করে যে কোন পজিশনে থাকা ক্যারেক্টার এ্যাক্সেস করতে পারি ।

my_string = "Hello Python"
print my_string[2]

স্ট্রিং লেন্থ

যেহেতু স্ট্রিংও এক ধরনের বিশেষ লিস্ট, তাই এর লেন্থও একই ভাবে বের করা যায়। আমরা যদি my_string স্ট্রিংটির লেন্থ বের করতে চাই তাহলে নিচের মত করে len() ফাংশনটি ব্যবহার করবো:

print len(my_string)

আপার কেইস ও লোয়ার কেইস

টপিকের নাম শুনেই বুঝতে পারছেন এই সেকশনে আমরা কি নিয়ে আলোচনা করবো ।

big = "AAA"
print big.lower()

small = "aaa"
print small.upper()

সব পাইথন স্ট্রিং অবজেক্ট এর - upper() এবং lower() নামে দুটি মেথড থাকে । এদের কল করে আমরা ঐ স্ট্রিংকে আপার কেইস বা লোয়ার কেইসে কনভার্ট করতে পারি ।

ফরম্যাটেড স্ট্রিং

ধরুন আমাদের ৩টি ভ্যারিয়েবল আছে -

name = "masnun"
age = 24
email = "masnun@transcendio.net"

এখন যদি আমরা এই তিনটি ভ্যারিয়েবল দিয়ে একটি অর্থবহ বাক্য প্রিন্ট করতে চাই, তাহলে আমাদের এরকম কিছু করতে হবে:

print "My name is " + name + ". I am " + str(age) + " years old. You can reach me via email - " + email

দেখুন, এখানে আমরা অনেকগুলো ভ্যারিয়েবল যোগ করেছি একটা একটা করে । ভ্যারিয়েবল এর সংখ্যা বাড়লে কোড এর অবস্থা আরো অগোছালো হয়ে যাবে । তাছাড়া দেখুন age এর টাইপ স্ট্রিং না হওয়ায় এটাকে জোর করে স্ট্রিং করার প্রয়োজন হয়েছে। এই ঝামেলাপূর্ন ফরম্যাটিং এর কাজটাই আমরা খুব সহজে করতে পারি একটু অন্যভাবে । এক্ষেত্রে আমরা ঐ স্ট্রিংটিতে কিছু প্লেসহোল্ডার রাখবো, এবং পরে এই প্লেস হোল্ডার গুলোর স্থানে ভ্যারিয়েবলগুলোর ভ্যালু বসিয়ে প্রিন্ট করবো । উদাহরন দেখি:

print "My name is %s, I am %d years old and my email address is %s " % (name, age, email)

এখানে %s দিয়ে বোঝানো হয় যে এই জায়গাটায় একটা স্ট্রিং ভ্যালু বসবে, %d এর স্থানে ইন্টিজার । স্ট্রিং টি সম্পূর্ণ হওয়ার পর % এর পর আমাদের ভ্যারিয়েবল গুলো একটি টাপল এর মধ্যে পাস করে দিলেই হলো ।

স্পেশাল ক্যারেক্টার এবং এস্কেইপ সিকুয়েন্স

স্ট্রিং এর ভিতরে আমরা বিশেষ কিছু ক্যারেক্টার ব্যবহার করতে পারি যেগুলো একটু ভিন্ন ধরনের । যেমন আমরা যদি নতুন লাইন তৈরি করতে চাই সেক্ষেত্রে আমরা নিউলাইন ক্যারেক্টার টি ব্যবহার করতে পারি -

print "Hello\nWorld!"

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

এখানে লক্ষ্য করুন দুটি স্পেশাল ক্যারেক্টারের আগেই \ বিদ্যমান । আমরা আগেই দেখেছি, এটি হচ্ছে পাইথনে এস্কেইপ ক্যারেক্টার । এস্কেইপ ক্যারেক্টারের পর এক বা একাধিক ক্যারেক্টার বসিয়ে আমরা যে এস্কেইপ সিকুয়েন্স পাই । কিছু প্রচলিত এস্কেইপ সিকুয়েন্স নিচে দেওয়া হলো -

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

(এই টেবিল টি জেড শ এর লার্ন পাইথন দ্যা হার্ড ওয়ে বইটি থেকে অনুবাদকৃত)