মূল content-এ যাও

Python for AI/Data Structures আরও গভীরে/Lesson 15

String Formatting আরও গভীরে

f-string format spec — দশমিক, percent, হাজারের comma, alignment দিয়ে table — আর join() দিয়ে দ্রুত string জোড়া। Training log আর report সুন্দর করে লেখা।

সময়
18 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

f-string আমরা চিনি: f"নাম: {name}"। কিন্তু { }-এর ভেতরে colon দিয়ে আরও নির্দেশ দেওয়া যায় — কত ঘর দশমিক, কোন দিকে align, কত চওড়া। একে বলে format specification বা format spec।

f"{ value : format-spec }"
           ^
           colon-এর পরে নির্দেশ

কেন দরকার?

Model train করার সময় এরকম log দেখবে:

Epoch  1/10 | loss 0.6931 | acc 52.3% | 1,250 samples/s
Epoch  2/10 | loss 0.4127 | acc 81.6% | 1,284 samples/s

সংখ্যাগুলো সুন্দর করে সাজানো — না হলে পড়াই যেত না। Report, dashboard, CLI tool — সবখানে এই skill লাগে।

সংখ্যা format করা

main.py
Specমানে1234.5678 →
.2f২ ঘর দশমিক1234.57
,হাজারের comma1,234.5678
,.1fদুটোই1,234.6
.1%percent (×100)123456.8%
.2escientific notation1.23e+03

Alignment আর চওড়া

main.py
Specমানে
<8বামে, মোট ৮ ঘর
>8ডানে, মোট ৮ ঘর
^8মাঝখানে
-^8মাঝখানে, খালি জায়গায় -
03সামনে 0 দিয়ে ৩ ঘর

সব মিলিয়ে: aligned table

main.py

Text-এ নাম বামে, সংখ্যা ডানে — যাতে অঙ্কগুলো (একক, দশক, শতক) এক লাইনে থাকে। এটাই professional table-এর নিয়ম।

Debugging-এর shortcut: =

Python 3.8+ এ variable-এর নাম সহ মান print করা যায়:

main.py

Bug খোঁজার সময় এটা অনেক সময় বাঁচায়।

join(): অনেক string একসাথে

main.py

join শুধু string-এর list নেয় — সংখ্যা থাকলে আগে str() করে নিতে হয়।

main.py

Exercise

Exercise

Model report

+20 XP

Model-এর metric দেওয়া আছে। f-string format spec দিয়ে report variable-এ ঠিক এই string বানাও এবং print করো:

Accuracy: 91.2% | Loss: 0.235 | Samples: 12,500

  • accuracy percent হিসেবে, ১ ঘর দশমিকে
  • loss ৩ ঘর দশমিকে
  • samples হাজারের comma দিয়ে
solution.py

Quiz

  1. Q1f"{0.5:.0%}"-এর মান কী?
  2. Q2f"[{'AI':>5}]"-এর মান কী?
  3. Q3অনেকগুলো string জোড়া লাগানোর সবচেয়ে ভালো উপায় কোনটা?
0/3 answered

Challenge

Challenge

Leaderboard table

+50 XP

make_table(rows) function লেখো যেটা (নাম, score) tuple-এর list নিয়ে একটা aligned table string return করে। প্রতিটা লাইন:

  • rank — ডানে align, চওড়া 2
  • তারপর . (dot + space)
  • নাম — বামে align, চওড়া 10
  • score — ডানে align, চওড়া 6, ১ ঘর দশমিক

লাইনগুলো \n দিয়ে জোড়া (শেষে কোনো \n নেই)। যেমন প্রথম লাইন: 1. Mim 92.5

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

একটা training loop-এর log — এখন পর্যন্ত শেখা সবকিছু একসাথে:

main.py

PyTorch Lightning, Keras, Hugging Face — সব training library ভেতরে ভেতরে এরকম formatting-ই করে।

Interview প্রশ্ন

  • Beginner: f-string আর + দিয়ে string জোড়ার মধ্যে কোনটা ভালো, কেন?
  • Intermediate: round(2.675, 2) কেন 2.67 দেয়, 2.68 না? (Float binary-তে 2.675 হুবহু রাখা যায় না — আসল মান 2.67499...।)
  • Advanced: টাকার হিসাবে float কেন ব্যবহার করা উচিত না? decimal.Decimal কী সমাধান দেয়?

এরপর কী?

অভিনন্দন! 🎉 Data Structures আরও গভীরে module শেষ — tuple, set, comprehension, nested data, sorting, searching আর formatting। তোমার Python এখন অনেক বেশি "Pythonic"।

পরের module-এ: Functions, Modules ও Packages — *args, **kwargs, lambda বিস্তারিত, আর অন্যের লেখা library (যেমন NumPy) কীভাবে ব্যবহার করতে হয়।