কম্পিউটার টিউটোরিয়াল

পাইথন - আউটপুট ফরম্যাটিং: f-স্ট্রিং, format(), এবং স্ট্রিং মেথড

পাইথনে আউটপুট ফরম্যাট করার একাধিক পদ্ধতি রয়েছে। আধুনিক পাইথন (৩.৬+) এ f-স্ট্রিং (f-strings) সবচেয়ে শক্তিশালী এবং পঠনযোগ্য। পুরানো পদ্ধতিগুলোও লিগেসি কোডে দেখা যায়। নিচে সব পদ্ধতির তুলনা দেওয়া হলো।

১. f-স্ট্রিং (Formatted String Literals) — পাইথন ৩.৬+ (সুপারিশ করা)

name = "Vishesh"
age = 25
score = 95.667

# বেসিক
print(f"Name: {name}, Age: {age}, Score: {score}")

# ফরম্যাট স্পেসিফিকেশন
print(f"Score: {score:.2f}")           # ২ দশমিক: 95.67
print(f"Score: {score:>10.2f}")        # ডান সাজানো, ১০ ক্যারেক্টার প্রস্থ
print(f"Score: {score:0>10.2f}")       # ০ দিয়ে প্যাডিং: 000095.67
print(f"Score: {score:<10.2f}")        # বাম সাজানো
print(f"Score: {score:^10.2f}")        # কেন্দ্র সাজানো

# এক্সপ্রেশন
print(f"Next year age: {age + 1}")
print(f"Hex: {age:#x}")                # 0x19
print(f"Binary: {age:#b}")             # 0b11001

# ডিকশনারি আনপ্যাক
data = {"name": "Vishesh", "lang": "Python"}
print(f"I love {data['lang']}")        # I love Python

২. str.format() মেথড — পাইথন ২.৬+ (f-স্ট্রিং-এর পূর্বরূপ)

# পজিশনাল আর্গুমেন্ট
print("{} loves {}".format("Vishesh", "Python"))

# নামড আর্গুমেন্ট
print("{name} loves {lang}".format(name="Vishesh", lang="Python"))

# ইনডেক্স ব্যবহার
print("{0} loves {1}, {0} is {2}".format("Vishesh", "Python", "awesome"))

# ফরম্যাট স্পেসিফিকেশন
print("Score: {:.2f}".format(95.667))
print("Score: {:>10.2f}".format(95.667))

# ডিকশনারি আনপ্যাক
tab = {'Vishesh': 4127, 'for': 4098, 'python': 8637678}
print('Vishesh: {0[Vishesh]:d}; For: {0[for]:d}; Python: {0[python]:d}'.format(tab))

# ** অপারেটর দিয়ে আনপ্যাক
data = dict(fun="VisheshforPython", adj="Python")
print("I love {fun} computer {adj}".format(**data))

৩. স্ট্রিং মডুলো অপারেটর (%) — লিগেসি (C-স্টাইল)

# ইন্টিজার
print("Vishesh: %d, Portal: %.2f" % (1, 5.333))
# Vishesh: 1, Portal: 5.33

# উইডথ এবং প্রিসিশন
print("Total: %3d, Boys: %2d" % (240, 120))

# অক্টাল, হেক্স, এক্সপোনেনশিয়াল
print("%7.3o" % (25))      # অক্টাল:    031
print("%10.3E" % (356.08977))  # এক্সপোনেনশিয়াল: 3.561E+02

# ডিকশনারি (পুরানো সিনট্যাক্স)
print("%(name)s is %(age)d" % {"name": "Vishesh", "age": 25})

৪. স্ট্রিং মেথডস: אלাইনমেন্ট এবং প্যাডিং

cstr = "I love python"

# কেন্দ্র সাজানো (ফিল ক্যারেক্টারসহ)
print(cstr.center(40, '$'))
# $$$$$$$$$$$$$I love python$$$$$$$$$$$$$$

# বাম সাজানো (লেফট জাস্টিফাই)
print(cstr.ljust(40, '-'))
# I love python---------------------------

# ডান সাজানো (রাইট জাস্টিফাই)
print(cstr.rjust(40, '-'))
# ---------------------------I love python

# zfill: সংখ্যার জন্য ০ প্যাডিং
print(str(42).zfill(6))  # 000042

তুলনা টেবিল

পদ্ধতিপাইথন ভার্সনপারফরম্যান্সপঠনযোগ্যতাফিচার
f-স্ট্রিং3.6+সবচেয়ে দ্রুত★★★★★এক্সপ্রেশন, ডিবাগ (=), সব ফরম্যাট
str.format()2.6+মাঝারি★★★★☆ডিকশনারি আনপ্যাক, কমপ্লেক্স লেআউট
% অপারেটর1.x+ধীর★★★☆☆লিগেসি, লগিং মডিউল কম্প্যাটিবিলিটি
স্ট্রিং মেথডসবদ্রুত★★★★☆সিম্পল অ্যালাইনমেন্ট/প্যাডিং

সেরা অনুশীলন

  • নতুন কোডে সবসময় f-স্ট্রিং ব্যবহার করুন।
  • লগিং মডিউল ব্যবহার করলে % ফরম্যাট বাধ্যতামূলক (lazy evaluation-র জন্য)।
  • বহুভাষিক অ্যাপের জন্য format() বা gettext ব্যবহার করুন (টেমপ্লেট আলাদা ফাইলে রাখা যায়)।
  • f"{var=}" সিনট্যাক্স (পাইথন ৩.৮+) ডিবাগিং-এ জাদুই: f"{x=}" → x=42।
  1. পাইথন স্ট্রিং মেথডসমূহ: সম্পূর্ণ রেফারেন্স গাইড

  2. পাইথনে টাপল (Tuple) কমপ্লিট প্রিন্ট করা স্ট্রিং ফরম্যাটিং দিয়ে

  3. পাইথনে কনক্যাটেনেটেড স্ট্রিং প্রিন্ট করার পদ্ধতি

  4. পাইথনে স্ট্রিং ASCII-এ আছে কিনা তা কীভাবে যাচাই করবেন?