ভেবে দেখেছো, তোমার স্মার্টফোন বা গুগল কীভাবে একদম সঠিক সময়ে জানিয়ে দেয় যে বাইরে এখন বৃষ্টি হচ্ছে নাকি প্রচণ্ড গরম? গুগল কিন্তু নিজে গিয়ে থার্মোমিটার দিয়ে তাপমাত্রা মাপে না! তারা ইন্টারনেটে থাকা কোনো আবহাওয়া কেন্দ্রের সার্ভার বা ডেটাবেজ থেকে এই তথ্য ধার করে।
ইন্টারনেটে এক সফটওয়্যার বা সার্ভার অন্য সফটওয়্যারের সাথে যেভাবে কথা বলে বা তথ্য আদান-প্রদান করে, তাকে বলা হয় API (Application Programming Interface)। আর পাইথনে ইন্টারনেট থেকে এই এপিআই-এর মাধ্যমে তথ্য টেনে আনার জন্য আমরা ব্যবহার করি একটি দারুণ লাইব্রেরি, যার নাম requests।
🛠️ শুরু করার আগে প্রস্তুতি (Prerequisites)
আজকের প্রজেক্টের জন্য আমাদের প্রথমে requests লাইব্রেরিটি ইনস্টল করে নিতে হবে। তোমার থনি (Thonny) এডিটরের টার্মিনালে গিয়ে লেখো:
Bash
pip install requests
আমরা আবহাওয়ার তথ্য নেওয়ার জন্য একটি সম্পূর্ণ ফ্রি ও ওপেন এপিআই ব্যবহার করব (যেমন: wttr.in), যার জন্য কোনো পাসওয়ার্ড বা এপিআই কি (API Key) লাগবে না!
🎮 আজকের কোডিং প্রজেক্ট: লাইভ আবহাওয়া রিপোর্টার
চলো, নিচের কোডটি লিখে আমরা যেকোনো শহরের লাইভ আবহাওয়ার খবর বের করে ফেলি:
Python
import requests
print("☀️ --- ক্ষুদে কোডারের লাইভ আবহাওয়া অ্যাপ --- 🌧️")
city = input("তুমি কোন শহরের আবহাওয়া জানতে চাও? (ইংরেজিতে লেখো, যেমন: Dhaka, London): ")
# আবহাওয়ার ফ্রি এপিআই ইউআরএল (URL)
# ?format=j1 দিলে এপিআই আমাদের JSON ফরম্যাটে সুন্দর ডেটা দেবে
url = f"https://wttr.in/{city}?format=j1"
print("\nइন্টারনেট থেকে তথ্য খোঁজা হচ্ছে... অনুগ্রহ করে অপেক্ষা করো... 📡")
try:
# requests.get দিয়ে ইন্টারনেট থেকে ডেটা টেনে আনা হচ্ছে
response = requests.get(url)
# ডেটাকে পাইথন ডিকশনারিতে রূপান্তর করা হচ্ছে
data = response.json()
# আসল তথ্যগুলো খুঁজে বের করা (Parsing Data)
current_condition = data['current_condition'][0]
temp_c = current_condition['temp_C'] # সেলসিয়াস তাপমাত্রা
weather_text = current_condition['weatherDesc'][0]['value'] # আবহাওয়ার অবস্থা
humidity = current_condition['humidity'] # আর্দ্রতা
# ফলাফল স্ক্রিনে দেখানো
print(f"\n🌍 শহর: {city.upper()}")
print(f"🌡️ বর্তমান তাপমাত্রা: {temp_c}°C")
print(f"☁️ আবহাওয়ার অবস্থা: {weather_text}")
print(f"💧 বাতাসে আর্দ্রতা: {humidity}%")
except:
print("\n❌ দুঃখিত! শহরের নামটি ভুল হয়েছে অথবা ইন্টারনেটে সমস্যা রয়েছে। আবার চেষ্টা করো।")
🧠 আজকের ছোট্ট চ্যালেঞ্জ (Challenge of the Week)
চ্যালেঞ্জ: কোডটি রান করে তোমার নিজের শহরের নাম ইংরেজিতে লিখে (যেমন:
RangpurবাChittagong) সার্চ করো। দেখ তো তোমার জানালার বাইরের আবহাওয়ার সাথে কম্পিউটারের দেখানো তাপমাত্রার মিল পাচ্ছো কিনা! এরপর বন্ধুদের সাথে এর স্ক্রিনশট শেয়ার করো।
পরবর্তী ধাপ: ৬ষ্ঠ সপ্তাহের এই লাইভ এপিআই প্রজেক্টের জন্য কি আমরা একটি চমৎকার ফিচার ইমেজ তৈরি করব, নাকি সরাসরি ৭ম সপ্তাহের গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এবং বাটন-উইন্ডো বানানোর ম্যাজিকে চলে যাবো?
