Günlük Hayatta AI + Kodlama: Basit Bir Hava Durumu Asistanı

 Yapay zeka günlük hayatımızı kolaylaştırırken, biz de ufak Python script’leriyle kendi asistanlarımızı yaratabiliriz. İşte sabah rutininize ekleyebileceğiniz çok basit bir örnek:

Bu script, bulunduğunuz şehrin hava durumunu çeker ve basit bir öneri verir: “Şemsiye al”, “Hafif giyin” gibi.

İlk Versiyon (Hatalı Kod):


<h4>Hatalı Kod (Çalıştığında Hata Verecek):</h4>

<pre><code class="language-python">

import requests


def get_weather(city):

    url = f"https://wttr.in/{city}?format=3"

    response = requests.get(url)

    weather = response.text.strip()

    

    if "Rain" in weather or "rain" in weather:

        print("Hava durumu:", weather)

        print("Bugün şemsiye almayı unutma! ☔")

    # ... (tam kodu buraya yapıştır)

</code></pre>


Bu kodu çalıştırdığınızda hata alırsınız.

Hata mesajı genellikle şöyle olur:


AttributeError: 'NoneType' object has no attribute 'strip'


veya bazen cevap boş geldiğinde başka bir sorun.

Neden hata veriyor?

requests.get() her zaman başarılı dönmeyebilir. İnternet bağlantısı yoksa, site geçici olarak yanıt vermiyorsa veya şehir adı yanlış yazılmışsa response.text boş kalır ve .strip() hataya neden olur. Ayrıca servis bazen emoji veya özel karakterler döndürdüğü için basit string kontrolü (“Rain” in weather) güvenilir değildir.

Düzeltilmiş ve Daha Sağlam Versiyon:


import requests


def get_weather(city):

    try:

        url = f"https://wttr.in/{city}?format=3"

        response = requests.get(url, timeout=10)  # Timeout ekledik

        response.raise_for_status()               # HTTP hatalarını yakala

        

        weather = response.text.strip()

        

        print(f"Hava durumu ({city}): {weather}")

        

        # Daha akıllı öneri (emoji ve kelimeleri kontrol et)

        weather_lower = weather.lower()

        if any(word in weather_lower for word in ["rain", "yağmur", "shower"]):

            print("☔ Bugün şemsiye veya yağmurluk almayı unutma!")

        elif any(word in weather_lower for word in ["sunny", "clear", "güneş"]):

            print("☀️ Hava harika görünüyor, dışarı çıkmaktan çekinme!")

        elif "cloud" in weather_lower or "bulut" in weather_lower:

            print("⛅ Hafif bulutlu, rahat bir gün olacak.")

        else:

            print("🌡️ Normal bir gün, keyfini çıkar!")

            

    except requests.exceptions.RequestException as e:

        print(f"Hava durumu alınamadı: {e}")

        print("İnternet bağlantınızı kontrol edin veya daha sonra tekrar deneyin.")


# Kullanım örnekleri

get_weather("Istanbul")

# get_weather("Ankara")

# get_weather("Midyat")   # Kendi şehrinizi deneyin


Bu versiyonda ne değişti ve neden daha iyi?

  try-except bloğu ile hatalar yakalanıyor.

•  timeout eklendi → sonsuza kadar beklemiyor.

  raise_for_status() ile HTTP hataları (404, 500 vs.) tespit ediliyor.

•  Öneri mantığı any() ve lower() ile daha güvenilir hale getirildi (büyük/küçük harf farkı ve Türkçe/İngilizce kelimeler destekleniyor).

•  Kullanıcı dostu hata mesajı eklendi.

Bu script’i bilgisayarınıza kaydedin (weather_assistant.py), terminalde python weather_assistant.py yazarak çalıştırın. Sabahları otomatik çalıştırmak isterseniz Windows Task Scheduler veya Linux cron ile kolayca kurabilirsiniz.

İsterseniz bu kodu genişletebilirsiniz:

•  E-posta ile günlük rapor gönderme

•  Akıllı saat bildirimi

•  Birden fazla şehir karşılaştırması

Yorumlarda kendi şehrinizi deneyip sonucu paylaşın! Hangi şehir için denediniz ve öneri ne çıktı? 😊





Günlük Hayatta AI + Kodlama: Basit Bir Hava Durumu Asistanı

  Yapay zeka günlük hayatımızı kolaylaştırırken, biz de ufak Python script’leriyle kendi asistanlarımızı yaratabiliriz. İşte sabah rutininiz...

En Çok Okunanlar