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 করা
| Spec | মানে | 1234.5678 → |
|---|---|---|
.2f | ২ ঘর দশমিক | 1234.57 |
, | হাজারের comma | 1,234.5678 |
,.1f | দুটোই | 1,234.6 |
.1% | percent (×100) | 123456.8% |
.2e | scientific notation | 1.23e+03 |
Alignment আর চওড়া
| Spec | মানে |
|---|---|
<8 | বামে, মোট ৮ ঘর |
>8 | ডানে, মোট ৮ ঘর |
^8 | মাঝখানে |
-^8 | মাঝখানে, খালি জায়গায় - |
03 | সামনে 0 দিয়ে ৩ ঘর |
সব মিলিয়ে: aligned table
Text-এ নাম বামে, সংখ্যা ডানে — যাতে অঙ্কগুলো (একক, দশক, শতক) এক লাইনে থাকে। এটাই professional table-এর নিয়ম।
Debugging-এর shortcut: =
Python 3.8+ এ variable-এর নাম সহ মান print করা যায়:
Bug খোঁজার সময় এটা অনেক সময় বাঁচায়।
join(): অনেক string একসাথে
join শুধু string-এর list নেয় — সংখ্যা থাকলে আগে str() করে নিতে হয়।
Exercise
Exercise
Model report
Model-এর metric দেওয়া আছে। f-string format spec দিয়ে report variable-এ ঠিক এই string বানাও এবং print করো:
Accuracy: 91.2% | Loss: 0.235 | Samples: 12,500
- accuracy percent হিসেবে, ১ ঘর দশমিকে
- loss ৩ ঘর দশমিকে
- samples হাজারের comma দিয়ে
Quiz
Challenge
Challenge
Leaderboard table
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
বাস্তবে কোথায় ব্যবহার হয়?
একটা training loop-এর log — এখন পর্যন্ত শেখা সবকিছু একসাথে:
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) কীভাবে ব্যবহার করতে হয়।