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

পাইথনে স্ট্রিং ইন্টারপোলেশন (ডেটা ভ্যালু স্ট্রিংয়ে ঢুকানো) - পুরনো, নতুন ও f-string পদ্ধতি


পাইথনে স্ট্রিং ফরম্যাটিংর তিনটি পদ্ধতি

১. পুরনো স্টাইল: % (Python 2, 3)


# বেসিক ফরম্যাট স্পেসিফায়ার
print('Number: %s' % 42)      # String format
print('Number: %d' % 42)      # Decimal
print('Number: %x' % 42)      # Hex: 2a
print('Number: %g' % 42)      # General float

# একাধিক ভ্যালু (টাপল ব্যবহার)
player = 'Roger Federer'
country = 'Legend'
titles = 20
print('Player: %s, Country: %s, Titles: %d' % (player, country, titles))

# উইডথ ও প্রিসিশন
print('%10s' % player)   # Right align, width 10
print('%-10s' % player)  # Left align
print('%10.5s' % player) # Width 10, max 5 chars

২. নতুন স্টাইল: .format() (Python 2.6+)


player = 'Roger Federer'
country = 'Legend'
titles = 20

# পজিশনাল
print('Player: {}, Country: {}, Titles: {}'.format(player, country, titles))

# পজিশনাল ইনডেক্স (রিঅর্ডারিং)
print('Titles: {2}, Player: {0}, Country: {1}'.format(player, country, titles))

# নেমড আর্গুমেন্ট
print('Player: {p}, Country: {c}, Titles: {t}'.format(p=player, c=country, t=titles))

# অ্যালাইনমেন্ট
print('{:<10} {:>10} {:^10}'.format('Left', 'Right', 'Center'))
# Left       Right    Center  

৩. f-string (Python 3.6+) - সেরা ও রিকমেন্ডেড


player = 'Roger Federer'
country = 'Legend'
titles = 20

# বেসিক
print(f'Player: {player}, Country: {country}, Titles: {titles}')

# এক্সপ্রেশন
print(f'Next year titles: {titles + 1}')

# মেথড কল
print(f'Player upper: {player.upper()}')

# ফরম্যাট স্পেসিফায়ার
print(f'Titles: {titles:03d}')     # 020 (zero-padded)
print(f'Rate: {3.14159:.2f}')      # 3.14
print(f'Name: {player:>20}')       # Right align width 20
print(f'Name: {player:*^20}')      # Center with * padding

কেন f-string সেরা?

ফিচার%.format()f-string
রিডেবিলিটিমিডিয়ামভালোসেরা
পারফরম্যান্সবেসলাইনস্লোয়ারফাস্টেস্ট
এক্সপ্রেশন সাপোর্টনাসীমিতহ্যাঁ
ডিবাগিং (Python 3.8+)নানা{var=} সিনট্যাক্স

প্র্যাক্টিক্যাল উদাহরণ: রিপোর্ট জেনারেশন


players = [('federer', 20), ('nadal', 20), ('djokovic', 17)]

# পুরনো স্টাইল - ক্লאנקি
for i, (p, t) in enumerate(players):
    print('#%d: %-10s = %d' % (i+1, p.title(), t))

# f-string - ক্লিন
for i, (p, t) in enumerate(players):
    print(f'#{i+1}: {p.title():<10} = {t}')

উপসংহার

  • Python 3.6+ এ f-string ব্যবহার করুন — ফাস্ট, রিডেবল, পাওয়ারফুল
  • লিগ্যাসি কোড মেইনটেইন করতে হলে % বা .format() বুঝতে হলে
  • ফরম্যাট স্পেসিফায়ার (:.2f, :>10, :03d) সব পদ্ধতিতে কাজ করে
  1. Matplotlib-এ ডেটা মানকে কালার ইনফরমেশনে কনভার্ট করার পদ্ধতি

  2. পাইথনে উইকিপিডিয়া ডেটা এক্সট্র্যাক্ট করা

  3. পাইথনে Matplotlib চার্টে লেজেন্ড যোগ করার টিউটোরিয়াল

  4. পাইথনে যেকোনো ডেটা টাইপকে স্ট্রিংয়ে রূপান্তর করার পদ্ধতি