পাইথনে সিঙ্গল বা ডাবল কোটেশন দুটোর মাধ্যমেই স্ট্রিং ডিফাইন করা যায় । তবে যেটি দিয়ে স্ট্রিং শুরু করবেন, শেষও করতে হবে সেটি দিয়েই । এক ধরণের কোটেশনের মধ্যে অন্য কোটেশন সরাসরি প্রিন্ট হয়ে যাবে । যে কোটেশন দিয়ে স্ট্রিং ব্যবহার করা হচ্ছে তার ভিতরে যদি ঐ কোটেশন চিহ্নটি কোন কারণে ব্যবহার করতে হয় তবে তার আগে একটি ব্যাক স্ল্যাশ ব্যবহার করতে হয় । আমরা কিছু উদাহরণ দেখি:
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` হেক্সাডেসিম্যাল ভ্যালুওয়ালা ক্যারেক্টার |
(এই টেবিল টি জেড শ এর লার্ন পাইথন দ্যা হার্ড ওয়ে বইটি থেকে অনুবাদকৃত)