স্ট্রিং

পাইথনে খুবই গুরুত্বপূর্ণ ডেটা টাইপ হলো স্ট্রিং । একগুচ্ছ ক্যারেক্টার বা কিছু ওয়ার্ডের সিকুয়েন্সকে সাধারণত স্ট্রিং বলা হয়ে থাকে। পাইথনে যে কোন সেনটেন্সকেই স্ট্রিং হিসেবে ব্যবহার করা যায় সিঙ্গেল(' '), ডাবল(" ") কিংবা ট্রিপল(""" """) কোটেশন এর মাধ্যমে। আমাদের পাইথন কনসোলে যদি নিচের মত করে বাক্য লিখে এন্টার চাপি তাহলে আউটপুটে সেই বাক্যকে দেখতে পারবো।

>>> "We love python!"
'We love python!'
>>> 'The most popular general purpose programming language'
'The most popular general purpose programming language'

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

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

>>> 'Brian\'s mother: He\'s not the Messiah. He\'s a very naughty boy!'
'Brian's mother: He's not the Messiah. He's a very naughty boy!'

নিউ লাইন ক্যারেক্টার (\n), ব্যাকস্ল্যাস ক্যারেক্টার (\), ট্যাব, ইউনিকোড ক্যারেক্টার - এদেরকেও এস্কেপ করে স্ট্রিং এর মধ্যে ব্যবহার করতে হয়।

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

>>> """Me: Hi, there!
... She: Yes, please!"""
'Me: Hi, there!\nShe: Yes, please!'
>>>

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

স্পেশাল ক্যারেক্টার এবং এস্কেইপ সিকুয়েন্স
কিছু প্রচলিত এস্কেইপ সিকুয়েন্স নিচে দেওয়া হলো -

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

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