Lesson ৭ মিনিট পড়া

স্ট্রিং এবং ফরম্যাটিং (Strings & Formatting)

শব্দ হলো শুধু ক্যারেক্টারের একটি অ্যারে, যা ছদ্মবেশে থাকে

স্ট্রিং কী? (What Are Strings?)

স্ট্রিং হলো ক্যারেক্টারের একটি সিকোয়েন্স — যেমন অক্ষর, সংখ্যা, স্পেস, ইমোজি বা যেকোনো কিছু। এটিকে একটি ব্রেসলেট বা চুড়ির মতো চিন্তা করুন যেখানে প্রতিটি পুঁতি হলো একটি ক্যারেক্টার। আপনি যেকোনো পুঁতি তার অবস্থান (position) অনুযায়ী দেখতে পারেন, কিন্তু একবার ব্রেসলেটে পুঁতি বসানোর পর তা পরিবর্তন করতে পারবেন না (স্ট্রিং হলো ইমিউটেবল বা অপরিবর্তনযোগ্য)।

আপনি সিঙ্গেল কোট 'hello', ডাবল কোট "hello", অথবা মাল্টি-লাইন টেক্সটের জন্য ট্রিপল কোট ব্যবহার করে স্ট্রিং তৈরি করতে পারেন। আপনি কোন কোট ব্যবহার করছেন তা নিয়ে পাইথন মাথা ঘামায় না — শুধু একই ধরন বজায় রাখবেন।

স্ট্রিং তৈরি করা (Creating Strings)

# Different ways to create strings
greeting = "Hello, World!"
name = 'Anika'
# Triple quotes for multi-line strings
poem = """Roses are red,
Violets are blue,
Python is awesome,
And so are you."""
print(poem)
# Strings with quotes inside
dialogue = "She said, 'Let's go!'"
print(dialogue)
# String length
print(len(greeting))
Output
Roses are red,
Violets are blue,
Python is awesome,
And so are you.
She said, 'Let's go!'
13

ইনডেক্সিং এবং স্লাইসিং (Indexing & Slicing)

একটি স্ট্রিংয়ের প্রতিটি ক্যারেক্টারের একটি ইনডেক্স (Index) (একটি অবস্থান নম্বর) রয়েছে। পাইথন 1 থেকে নয়, বরং 0 থেকে গণনা শুরু করে। আপনি নেগেটিভ ইনডেক্স ব্যবহার করে পেছন থেকেও গণনা করতে পারেন: -1 হলো শেষের ক্যারেক্টার, -2 হলো শেষের আগেরটি, এবং এভাবেই চলতে থাকে।

স্লাইসিং (Slicing) আপনাকে [start:stop:step] ব্যবহার করে স্ট্রিংয়ের একটি অংশ বা খণ্ড নিয়ে আসতে দেয়। stop ইনডেক্সটি এখানে অন্তর্ভুক্ত করা হয় না — এটিকে একটি বেড়ার মতো চিন্তা করুন: আপনি বেড়াতে ধাক্কা খাওয়ার আগেই থেমে যাবেন।

ইনডেক্সিং এবং স্লাইসিং (Indexing & Slicing)

word = "PYTHON"
# P Y T H O N
# 0 1 2 3 4 5
# -6 -5 -4 -3 -2 -1
print(word[0]) # First character
print(word[-1]) # Last character
print(word[1:4]) # Characters 1, 2, 3 (not 4!)
print(word[:3]) # First 3 characters
print(word[3:]) # From index 3 to the end
print(word[::2]) # Every other character
print(word[::-1]) # Reversed!
Output
P
N
YTH
PYT
HON
PTO
NOHTYP

f-Strings: ফরম্যাট করার সেরা উপায়

f-strings (ফর্মাটেড স্ট্রিং লিটারেলস) হলো টেক্সটের মধ্যে ভ্যারিয়েবল যুক্ত করার জন্য পাইথনের সবচেয়ে পরিষ্কার উপায়। শুধু কোটেশন খোলার আগে একটি f বসিয়ে দিন এবং আপনি যে এক্সপ্রেশনটি এম্বেড করতে চান তার চারপাশে কোঁকড়ানো বন্ধনী বা কার্লি ব্রেইস {} ব্যবহার করুন। আপনি এমনকি সেই বন্ধনীর ভেতরে অংক বা গণিত করতে পারেন এবং ফাংশন কল করতে পারেন!

f-Strings এবং ফরম্যাটিং (f-Strings and Formatting)

name = "Laboni"
age = 12
height = 4.8333
# Basic f-string
print(f"Hi, I'm {name} and I'm {age} years old!")
# Math inside f-strings
print(f"Next year I'll be {age + 1}")
# Formatting numbers
print(f"Height: {height:.1f} feet") # 1 decimal place
print(f"Score: {42:05d}") # Pad with zeros
print(f"Price: ${19.9:.2f}") # 2 decimal places
# Expressions inside f-strings
items = ["sword", "shield", "potion"]
print(f"You have {len(items)} items")
Output
Hi, I'm Laboni and I'm 12 years old!
Next year I'll be 13
Height: 4.8 feet
Score: 00042
Price: $19.90
You have 3 items

দরকারী স্ট্রিং মেথডস (Handy String Methods)

স্ট্রিংয়ের সাথে প্রচুর বিল্ট-ইন মেথড দেয়া থাকে। যেহেতু স্ট্রিংগুলো ইমিউটেবল (অপরিবর্তনযোগ্য), তাই এই মেথডগুলো সর্বদা একটি নতুন স্ট্রিং রিটার্ন করে — মূল স্ট্রিংটি অপরিবর্তিত থাকে।

সাধারণ স্ট্রিং মেথডস (Common String Methods)

msg = " Hello, Python World! "
print(msg.strip()) # Remove leading/trailing spaces
print(msg.lower()) # All lowercase
print(msg.upper()) # ALL CAPS
print(msg.strip().replace("World", "Galaxy"))
# Splitting and joining
csv_line = "আম,জাম,কাঁঠাল"
fruits = csv_line.split(",") # Split into a list
print(fruits)
print(" & ".join(fruits)) # Join list back into a string
# Searching
story = "The cat sat on the mat"
print(story.count("at")) # How many times?
print(story.find("sat")) # Index where it starts
print(story.startswith("The")) # True or False?
print("cat" in story) # Membership check
Output
Hello, Python World!
  hello, python world!  
  HELLO, PYTHON WORLD!  
Hello, Python Galaxy!
['আম', 'জাম', 'কাঁঠাল']
apple & জাম & কাঁঠাল
3
8
True
True
Note: স্ট্রিংগুলো ইমিউটেবল — আপনি এদেরকে জায়গাটিতে সরাসরি পরিবর্তন করতে পারবেন না। যখন আপনি msg.upper() কল করেন, তখন পাইথন একটি একদম নতুন স্ট্রিং তৈরি করে। মূল msg অপরিবর্তিত থাকে। এটি অনেকটা একটি চিঠি ফটোকপি করে মূল চিঠির পরিবর্তে ওই কপির ওপর লেখার মতো।
চ্যালেঞ্জ

ছোট কুইজ

"PYTHON"[1:4] কী রিটার্ন করে?

পড়া চালিয়ে যান

Operators & ExpressionsConditionals