Python for AI/Python শুরু/Lesson 05
Strings
Text নিয়ে কাজ — f-string, indexing, slicing আর দরকারি string methods। NLP-র একদম প্রথম ধাপ।
- সময়
- 20 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
String (str) হলো অক্ষরের একটা ক্রম — text। Quote-এর ভেতরে যা লেখো তাই string: "Dhaka", 'AI', এমনকি "৫০০ টাকা"। Python string-এ বাংলা, ইমোজি সব চলে।
কেন দরকার?
ChatGPT, Google Translate, spam filter, sentiment analysis — এগুলো সব NLP (Natural Language Processing)। আর NLP-র কাজ শুরু হয় text পরিষ্কার করা দিয়ে: space কাটা, ছোট হাতের অক্ষরে আনা, শব্দে ভাগ করা। এগুলো সব string operation।
f-string: সবচেয়ে কাজের feature
String-এর ভেতরে variable বসাতে f-string ব্যবহার করো — quote-এর আগে f, আর variable { }-এর ভেতরে:
{cgpa:.2f} মানে দশমিকের পর ২ ঘর। Model-এর accuracy, loss print করতে এটা সবসময় লাগবে।
Indexing: একটা অক্ষর বের করা
String-এর প্রতিটা অক্ষরের একটা position বা index আছে, যা 0 থেকে শুরু:
P y t h o n
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
len() দেয় string-এর দৈর্ঘ্য।
Slicing: অংশ কেটে নেওয়া
[start:end] — start থেকে শুরু, কিন্তু end বাদ:
শেষেরটা একটা মজার trick: [::-1] পুরো string উল্টে দেয়।
দরকারি String Methods
| Method | কাজ |
|---|---|
.strip() | আগে-পরের space কাটে |
.lower() / .upper() | ছোট / বড় হাতের অক্ষর |
.replace(a, b) | a-এর জায়গায় b বসায় |
.split() | শব্দে ভাগ করে list বানায় |
.startswith() / .endswith() | শুরু / শেষ মেলে কিনা |
x in s | s-এর ভেতরে x আছে কিনা |
String বদলানো যায় না (immutable)
TypeError — string-এর কোনো অক্ষর সরাসরি বদলানো যায় না। এর বদলে নতুন string বানাতে হয়:
Exercise
Exercise
Messy text পরিষ্কার করো
User-এর কাছ থেকে একটা email এসেছে: raw = " Rahim.Uddin@GMAIL.com "
email variable-এ এমনভাবে রাখো যেন আগে-পরের space না থাকে আর সব অক্ষর ছোট হাতের হয়। তারপর email print করো।
Quiz
Challenge
Challenge
নামের আদ্যক্ষর
full_name = "abdul karim chowdhury" থেকে initials বানাও যার মান হবে "A.K.C." — প্রতিটা শব্দের প্রথম অক্ষর, বড় হাতের, পরে একটা dot।
এখানে ৩টা শব্দ আছে, তাই এখনকার জন্য index দিয়ে করলেই চলবে। (Loop শিখলে যেকোনো সংখ্যক শব্দের জন্য করা যাবে।)
বাস্তবে কোথায় ব্যবহার হয়?
একটা sentiment analysis model-এ text পাঠানোর আগে সাধারণত এরকম preprocessing হয়:
এই "text → token" ধারণাটাই পরে LLM-এর tokenization-এ গিয়ে আরও উন্নত রূপ নেবে।
Interview প্রশ্ন
- Beginner: String immutable মানে কী?
- Intermediate: একটা string palindrome কিনা কীভাবে চেক করবে? (
s == s[::-1]) - Advanced: Loop-এর ভেতরে
s += xদিয়ে বড় string বানানো কেন inefficient, আর"".join(parts)কেন ভালো?
এরপর কী?
এখন পর্যন্ত আমাদের program সবসময় একই কাজ করে। কিন্তু real program পরিস্থিতি বুঝে সিদ্ধান্ত নেয় — পরের lesson: Conditions।