Herkese Selamlar,
Konumuzda, Python'da fikir olabilecek ve kullanılıp geliştirilebilecek bazı projeleri kodları ile paylaşacağım. Dileyen arkadaşlarımız geliştirebilirler.
Film Öneri Botu
Bu bot, kullanıcıdan alacağı tercihlere göre öneri verecek ve filmleri IMDb veya benzeri platformlardan otomatik olarak çekecek.
Python:
import requests
from bs4 import BeautifulSoup
import random
def film_ara(film_adı):
url = f"https://www.imdb.com/find?q={film_adı}&s=tt"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
filmler = soup.find_all("td", class_="result_text")
if not filmler:
return None
ilk_film = filmler[0].find("a")
film_adı = ilk_film.text
film_linki = "https://www.imdb.com" + ilk_film['href']
return {"film_adı": film_adı, "film_linki": film_linki}
def film_öner():
kategoriler = ["Aksiyon", "Macera", "Komedi", "Drama", "Korku", "Bilim Kurgu"]
secilen_kategori = random.choice(kategoriler)
print(f"Önerilen kategori: {secilen_kategori}")
url = f"https://www.imdb.com/search/title/?genres={secilen_kategori.lower()}"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
filmler = soup.find_all("h3", class_="lister-item-header")
if not filmler:
return None
secilen_film = random.choice(filmler)
film_adı = secilen_film.a.text
film_linki = "https://www.imdb.com" + secilen_film.a['href']
return {"film_adı": film_adı, "film_linki": film_linki}
def ana_menu():
print("--- Film Öneri Botu ---")
print("1. Film Ara")
print("2. Rastgele Film Öner")
print("0. Çıkış")
secim = input("Seçiminizi girin: ")
if secim == "1":
film_adı = input("Aramak istediğiniz film adını girin: ")
film = film_ara(film_adı)
if film:
print(f"{film['film_adı']} için IMDb linki: {film['film_linki']}")
else:
print("Film bulunamadı.")
elif secim == "2":
film = film_öner()
if film:
print(f"Önerilen film: {film['film_adı']}")
print(f"Film linki: {film['film_linki']}")
else:
print("Öneri yapılacak film bulunamadı.")
elif secim == "0":
print("Çıkılıyor...")
else:
print("Geçersiz seçim. Lütfen tekrar deneyin.")
ana_menu()
if __name__ == "__main__":
ana_menu()
Sohbet Botu
Bu bot, kullanıcılarla metin tabanlı bir şekilde etkileşim kurarak soruları yanıtlayabilir, bilgi sağlayabilir ve hatta bazı komutları gerçekleştirebilir.
Python:
import random
cevaplar = {
"merhaba": "Merhaba! Size nasıl yardımcı olabilirim?",
"nasılsın": "Ben bir yapay zeka olduğum için duygularım yok, ama teşekkür ederim, iyi çalışıyorum!",
"güle güle": "Güle güle! Tekrar görüşmek üzere.",
"saat kaç": "Şu an saat {}.",
"hava nasıl": "Hava durumu bilgilerine erişemiyorum. Lütfen bir hava durumu servisine başvurun.",
"rasgele sayı": "Rasgele bir sayı seçiyorum: {}",
"teşekkürler": "Rica ederim! Sormak istediğiniz başka bir şey var mı?",
}
def bot_cevap(veri):
veri = veri.lower()
cevap = cevaplar.get(veri, "Üzgünüm, anlamadım. Tekrar eder misiniz?")
if "{}" in cevap:
cevap = cevap.format(random.randint(0, 100))
return cevap
def ana_menu():
print("--- Sohbet Botu ---")
print("Bot ile konuşmaya başlamak için 'q' ya basın.")
while True:
kullanıcı_girişi = input("Siz: ")
if kullanıcı_girişi.lower() == "q":
break
cevap = bot_cevap(kullanıcı_girişi)
print("Bot:", cevap)
if __name__ == "__main__":
ana_menu()
Sesli Asistan
Bu proje, kullanıcının sesli komutlarını algılayarak çeşitli görevleri yerine getirebilir ve bilgi sağlayabilir.
Python:
import speech_recognition as sr
import pyttsx3
import datetime
import wikipedia
import webbrowser
import os
def speak(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
def dinle():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Sizi dinliyorum...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Anlıyorum...")
komut = r.recognize_google(audio, language="tr-TR").lower()
print(f"Söylediğiniz komut: {komut}")
except sr.UnknownValueError:
print("Üzgünüm, anlayamadım. Tekrar deneyin.")
komut = dinle()
return komut
def saat():
suan = datetime.datetime.now().strftime("%H:%M")
speak(f"Şu an saat {suan}.")
def wikipedia_ara(sorgu):
try:
sonuç = wikipedia.summary(sorgu, sentences=2)
speak(f"Wikipedia'da bulunan bilgilere göre: {sonuç}")
except Exception as e:
speak("Üzgünüm, Wikipedia'da bir sonuç bulunamadı.")
def web_sitelerini_aç(site):
webbrowser.open_new_tab(site)
speak(f"{site} sitesi açılıyor...")
def dosyaları_aç():
os.system("explorer")
def ana_menu():
speak("Merhaba! Size nasıl yardımcı olabilirim?")
while True:
komut = dinle()
if "saat kaç" in komut:
saat()
elif "arama yap" in komut:
speak("Arama yapmak istediğiniz konuyu söyleyin.")
konu = dinle()
wikipedia_ara(konu)
elif "web sitesi aç" in komut:
speak("Açmak istediğiniz web sitesinin adresini söyleyin.")
site = dinle()
web_sitelerini_aç(site)
elif "dosyaları aç" in komut:
dosyaları_aç()
elif "kapat" in komut:
speak("Görüşmek üzere!")
break
else:
speak("Üzgünüm, anlayamadım. Tekrar deneyin.")
if __name__ == "__main__":
ana_menu()
Fikir Günlüğü Uygulaması
Bu proje, kullanıcının günlük olarak fikirlerini, düşüncelerini veya notlarını kaydedebileceği basit bir arayüz sunar. Kullanıcılar, fikirlerini yazabilir, kaydedebilir, düzenleyebilir ve istediklerinde görüntüleyebilirler.
Python:
import os
def fikir_kaydet():
print("Fikrinizi girin (Çıkış için 'q' ya basın):")
fikirler = []
while True:
fikir = input()
if fikir.lower() == "q":
break
fikirler.append(fikir)
if fikirler:
with open("fikirler.txt", "a") as dosya:
for fikir in fikirler:
dosya.write(f"{fikir}\n")
print("Fikirleriniz başarıyla kaydedildi.")
else:
print("Hiç fikir girilmedi.")
def fikirleri_goruntule():
try:
with open("fikirler.txt", "r") as dosya:
fikirler = dosya.readlines()
if fikirler:
print("\nFikirleriniz:")
for i, fikir in enumerate(fikirler):
print(f"{i + 1}. {fikir.strip()}")
else:
print("Henüz hiç fikir yok.")
except FileNotFoundError:
print("Henüz hiç fikir yok.")
def fikir_sil():
fikirleri_goruntule()
secim = int(input("\nSilmek istediğiniz fikrin numarasını girin (Çıkış için 0): "))
if secim == 0:
return
try:
with open("fikirler.txt", "r") as dosya:
fikirler = dosya.readlines()
if 0 < secim <= len(fikirler):
fikirler.pop(secim - 1)
with open("fikirler.txt", "w") as dosya:
dosya.writelines(fikirler)
print("Fikir başarıyla silindi.")
else:
print("Geçersiz fikir numarası.")
except FileNotFoundError:
print("Henüz hiç fikir yok.")
def ana_menu():
while True:
print("\n--- Fikir Günlüğü Uygulaması ---")
print("1. Fikir Ekle")
print("2. Fikirleri Görüntüle")
print("3. Fikir Sil")
print("0. Çıkış")
secim = input("Seçiminizi girin: ")
if secim == "1":
fikir_kaydet()
elif secim == "2":
fikirleri_goruntule()
elif secim == "3":
fikir_sil()
elif secim == "0":
break
else:
print("Geçersiz seçim. Lütfen tekrar deneyin.")
if __name__ == "__main__":
if not os.path.exists("fikirler.txt"):
with open("fikirler.txt", "w"):
pass
ana_menu()