Python স্ট্রিং একটি সত্যিকারের দরকারি এম্বেডিং সিনট্যাক্স আর প্রচুর বিল্ট-ইন মেথড নিয়ে আসে — এই পাঠে সেগুলো দেখানো হবে যা আপনি প্রতিদিন আসলেই ব্যবহার করবেন।
একটি f-string — f-প্রিফিক্সযুক্ত একটি স্ট্রিং লিটারেল — আপনাকে সরাসরি { }-এর ভেতরে যেকোনো এক্সপ্রেশন বসাতে দেয়:
name = "Priya"
age = 21
print(f"{name} is {age} years old.")
print(f"Next year: {age + 1}") # expressions work too, not just variablesএটি PHP-এর ডাবল-কোট ইন্টারপোলেশনের Python সমতুল্য, কিন্তু বেশি শক্তিশালী — PHP এটির মতো সরাসরি একটি স্ট্রিংয়ের ভেতরে age + 1-এর মতো একটি এক্সপ্রেশন বসাতে পারে না।
Python [start:end] ব্যবহার করে অক্ষরের একটি রেঞ্জ বের করতে দেয় — PHP-এর substr()-এর মতো আলাদা কোনো ফাংশনের দরকার নেই:
text = "Hello, world!"
print(text[0]) # "H"
print(text[0:5]) # "Hello"
print(text[-1]) # "!" — negative indexes count from the end
print(text[7:]) # "world!" — leaving off the end means "to the end"| মেথড | কী করে | উদাহরণ |
|---|---|---|
| len(s) | একটি স্ট্রিং-এর দৈর্ঘ্য (একটি ফাংশন, মেথড নয়) | len("hello") → 5 |
| s.upper() / s.lower() | কেস বদলানো | "hi".upper() → "HI" |
| s.strip() | দুই প্রান্ত থেকে whitespace সরায় | " hi ".strip() → "hi" |
| s.replace(old, new) | সব occurrence replace করে | "I like cat".replace("cat", "dog") |
| s.split(delimiter) | একটি স্ট্রিংকে list-এ ভাগ করে | "a,b,c".split(",") → ['a', 'b', 'c'] |
| delimiter.join(list) | একটি list-কে স্ট্রিংয়ে জোড়া দেয় | "-".join(["a", "b"]) → "a-b" |
মেথড বনাম ফাংশন — কোনো পরিষ্কার নিয়ম নেই
লক্ষ্য করুন এদের বেশিরভাগই স্ট্রিং নিজের উপর কল করা মেথড (s.upper()), PHP-এর strtoupper($s)-এর মতো স্ট্রিংকে আর্গুমেন্ট হিসেবে নেওয়া আলাদা ফাংশন নয় — শুধু len() ছাড়া, যা একটি ফাংশন। এই মিশ্র প্যাটার্নটা মুখস্থ রাখতে হবে; কোনটা কী তা অনুমান করার কোনো পরিষ্কার নিয়ম নেই।
Python-এর একটি বড় স্ট্যান্ডার্ড স্ট্রিং মেথড সেট আছে — এখানে যা নেই তার জন্য দেখুন python.org-এ সম্পূর্ণ স্ট্রিং মেথড রেফারেন্স।
স্ট্রিং মেথড একটি নতুন স্ট্রিং রিটার্ন করে
Python স্ট্রিং immutable — s.upper() একটি নতুন স্ট্রিং রিটার্ন করে, এটি s-কে নিজে বদলায় না। শুধু s.upper(), ফলাফল ফেলে দিয়ে, নতুনদের একটি সাধারণ ভুল; পরিবর্তনটা আসলে রাখতে আপনার s = s.upper() দরকার।