Nesne Tabanlı Programlama

1 - Giriş

Emre Can Yılmaz

Ondokuz Mayıs Üniversitesi

2024

Kaynaklar

  • Paylaşılacak Slayt ve Belgeler
  • Python - Mustafa Başer (Dikeyeksen)
  • Head First Python: A Brain-Friendly Guide
  • Python Cookbook: Recipes for Mastering Python 3

İçerik

  • Python ile nesne yönelimli programlama

Python Nedir?

  • Günümüzün en popüler ve çok yönlü programlama dillerinden biridir.
  • Okunabilirlik ve basitliğe odaklanan, öğrenmesi kolay bir dildir.
  • Bu derste, Python’un temellerini öğrenecek ve heyecan verici projeler geliştirmek için nasıl kullanılabileceğini keşfedeceksiniz!

Neden Python?

  • Okunabilirlik: Sözdizimi (syntax) İngilizce’ye benzer, bu da öğrenmeyi ve kodu anlamayı kolaylaştırır.
  • Çok Yönlülük: Birçok farklı alanda kullanılabilir.
  • Geniş Kütüphane Desteği: Zengin bir kütüphane ekosistemine sahiptir.
  • Büyük Topluluk: Geniş ve aktif bir topluluk, yardım bulmayı ve kaynaklara erişmeyi kolaylaştırır.
  • Ücretsiz ve Açık Kaynak: Herhangi bir ücret ödemeden indirip kullanabilir, kodunu inceleyip değiştirebilirsiniz.

Python’un Tarihi ve Gelişimi

  • 1980’lerin sonunda Guido van Rossum tarafından geliştirilmeye başlandı.
  • İlk sürüm (Python 0.9.0), 1991’de yayınlandı.
  • Adını Monty Python adlı komedi grubundan almıştır.
  • Sürekli olarak geliştirilmekte ve yeni özellikler eklenmektedir.
  • Günümüzde Python 3.x sürümleri yaygın olarak kullanılmaktadır.

Programlama Dilleri: Derlenen ve Yorumlanan

  • Derlenen diller: Kaynak kod, program çalıştırılmadan önce makine diline çevrilir (örneğin, C, C++, Java).
  • Yorumlanan diller: Kaynak kod, program çalıştırılırken satır satır yorumlanır ve çalıştırılır (örneğin, Python, JavaScript, Ruby).
  • Python, yorumlanan bir dildir.

Yüksek Seviyeli ve Düşük Seviyeli Diller

  • Yüksek seviyeli diller: İnsan diline daha yakın ve anlaşılması daha kolaydır (örneğin, Python).
  • Düşük seviyeli diller: Makine diline daha yakın ve donanıma daha doğrudan erişim sağlar (örneğin, C).

Nesne Tabanlı Programlama (OOP) Nedir?

  • Programlamayı daha düzenli, anlaşılır ve yeniden kullanılabilir hale getiren bir yaklaşımdır.

  • Temel bileşenleri:

    • Sınıflar (Classes)
    • Nesneler (Objects)

Başka Nesne Tabanlı Programlama Dilleri

  • Java
  • C++
  • C#
  • JavaScript
  • Ruby
  • PHP

Minik Örnek: Araba Sınıfı

class Araba:
    def __init__(self, marka, model, renk):
        self.marka = marka
        self.model = model
        self.renk = renk

    def sur(self):
        print("Vınnn! Araba sürülüyor...")

# Nesne oluşturma
benim_arabam = Araba("Ford", "Mustang", "Siyah")

# Metodu çağırma
benim_arabam.sur()  # Çıktı: Vınnn! Araba sürülüyor...

OOP’nin Temel Prensipleri

  • Soyutlama: Gereksiz detayları gizleyerek karmaşıklığı azaltır.
  • Kapsülleme: Veri ve metotları bir arada tutarak kodun güvenliğini artırır.
  • Kalıtım: Kod tekrarını azaltır ve mevcut kodları yeniden kullanmayı kolaylaştırır.
  • Çok Biçimlilik: Farklı nesnelerin aynı isimli metotlara farklı şekilde yanıt vermesini sağlar.

OOP Nerelerde Kullanılır?

  • Web Geliştirme
  • Oyun Geliştirme
  • Veri Analizi ve Yapay Zeka
  • Masaüstü Uygulamaları
  • Mobil Uygulamalar

Python Kurulumu

https://www.python.org/downloads/

  • MacOS:
    • brew install python
  • Linux:
    • sudo apt update && sudo apt install python3 python3-pip
  • Windows:
    • Resmi sitesinden indirilerek kurulabilir.
    • Kurulum sırasında “Add Python to PATH” seçeneğini işaretleyin. Next, next, next…

Python’un Etkileşimli Kabuğu (Interpreter)

  • Python kodunu anında çalıştırmak ve sonuçları görmek için kullanılır.
  • Komut satırına python yazarak başlatabilirsiniz.

Geliştirme Ortamı

  • VSCode (Varsayılan) -> https://code.visualstudio.com/
  • PyCharm -> https://www.jetbrains.com/pycharm/
  • Sublime Text -> https://www.sublimetext.com/
  • Atom Text Editor -> https://atom-editor.cc/
  • Jupyter Notebook -> https://jupyter.org/

İlk Python Programı: “Merhaba Dünya!”

print("Merhaba Dünya!")

Python Dosyası

Python ile yazılmış kodlar için .py uzantısı önerilmektedir.

Örnek:

  • Yukarıdaki print("Merhaba Dünya!") satırını merhaba.py isimli bir dosyaya yazın.
  • Komut satırından python merhaba.py yazdığınızda kodun çalıştığını ve ekranda “Merhaba Dünya!” yazdığını görmelisiniz.

Yapay Zeka ve Python: Mükemmel Bir Uyum

  • Yapay zeka (YZ), bilgisayarların insan benzeri zeka gerektiren görevleri yerine getirebilme yeteneğidir.
  • Python, yapay zeka uygulamaları geliştirmek için en popüler programlama dillerinden biridir.
  • Neden Python?
    • Kolay öğrenilebilir ve okunabilir
    • Zengin kütüphane ekosistemi (NumPy, Pandas, Scikit-learn, TensorFlow, PyTorch)
    • Büyük ve aktif topluluk

LLM’ler: Dil Anlayan ve Üreten Yapay Zeka Modelleri

  • ChatGPT, Gemini gibi LLM’ler (Large Language Models - Büyük Dil Modelleri), insan dilini anlama ve üretme konusunda inanılmaz yeteneklere sahip yapay zeka modelleridir.
  • Python, LLM’lerle etkileşim kurmak ve uygulamalar geliştirmek için ideal bir dildir.

Örnek: Metin Özeti Oluşturma

import openai

# OpenAI API anahtarınızı buraya girin
openai.api_key = "YOUR_API_KEY"

metin = """
Python, Guido van Rossum tarafından 1980'lerin sonunda geliştirilmeye başlanan,
okunabilirlik ve basitliğe odaklanan güçlü ve çok yönlü bir programlama dilidir.
Günümüzde, web geliştirmeden veri analizine, yapay zekadan oyun programlamaya kadar
birçok alanda yaygın olarak kullanılmaktadır.
"""

yanit = openai.Completion.create(
  engine="text-davinci-003",
  prompt=f"Aşağıdaki metnin kısa bir özetini çıkar:\n\n{metin}\n\nÖzet:",
  temperature=0.7,
  max_tokens=60
)

ozet = yanit.choices[0].text.strip()
print(ozet)

Özet

  • Python programlama diline giriş yaptık, neden Python tercih etmeliyiz öğrendik.
  • Python’un tarihçesinden ve programlama dillerinin türlerinden bahsettik.
  • Nesne tabanlı programlamaya giriş yaptık.
  • Python kurulumunu yapıp, ilk programımızı yazdık.
  • Yapay zeka ve LLM’ler ile olan ilişkisini gördük.

Gelecek Hafta

  • Değişkenler, veri tipleri ve operatörler
  • Type casting (tip dönüşümü)
  • Değişken isimlendirme kuralları
  • Yorum satırları (comments)