Python’a Merhaba ve Temel Kavramlar

Bölüm 1: Python’a Merhaba ve Temel Kavramlar

1.1 Python Nedir? Neden Python?

1.1.1 Programlama ve Programlama Dilleri

Bilgisayarlar, hayatımızın her alanında yer alan ve birçok görevi bizim adımıza yerine getiren güçlü araçlardır. Ancak, bilgisayarlar kendi başlarına düşünemez ve karar veremezler. Onlara ne yapmaları gerektiğini söylememiz gerekir. İşte tam bu noktada programlama devreye girer.

Programlama, bilgisayarlara belirli görevleri yerine getirmeleri için talimatlar vermektir. Bu talimatlar, programlama dilleri kullanılarak yazılır. Tıpkı insanlar arasında iletişim kurmak için farklı diller olduğu gibi, bilgisayarlarla iletişim kurmak için de farklı programlama dilleri vardır.

1.1.2 Python: Çok Yönlü ve Kullanışlı Bir Programlama Dili

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.

1.1.3 Peki, Neden Python?

Python’u tercih etmemizin birçok nedeni vardır:

  • Okunabilirlik: Python, diğer programlama dillerine göre daha okunabilir ve anlaşılır bir yapıya sahiptir. Sözdizimi (syntax) İngilizce’ye benzer, bu da öğrenmeyi ve kodu anlamayı kolaylaştırır.
  • Çok Yönlülük: Python, birçok farklı alanda kullanılabilir. Web uygulamaları, masaüstü uygulamaları, oyunlar, veri analizi araçları, yapay zeka uygulamaları ve daha birçok şey Python ile geliştirilebilir.
  • Geniş Kütüphane Desteği: Python, zengin bir kütüphane ekosistemine sahiptir. Bu kütüphaneler, birçok görevi kolaylaştırmak için hazır fonksiyonlar ve araçlar sunar. Örneğin, veri analizi için Pandas kütüphanesi, web geliştirme için Django framework’ü, yapay zeka için TensorFlow kütüphanesi gibi.
  • Büyük Topluluk: Python, geniş ve aktif bir topluluğa sahiptir. Bu da yardım bulmayı, sorularınıza cevap almayı ve kaynaklara erişmeyi kolaylaştırır.
  • Ücretsiz ve Açık Kaynak: Python, ücretsiz ve açık kaynaklı bir dildir. Bu, herhangi bir ücret ödemeden indirip kullanabileceğiniz ve kodunu inceleyip değiştirebileceğiniz anlamına gelir.

1.1.4 Programlama Dilleri: Derlenen ve Yorumlanan

Programlama dilleri, genellikle derlenen (compiled) ve yorumlanan (interpreted) olarak iki kategoriye ayrılır.

  • Derlenen dillerde, kaynak kod, program çalıştırılmadan önce, bilgisayarın anlayabileceği makine diline çevrilir. Bu çeviri işlemine derleme denir. C, C++, Java gibi diller derlenen dillerdir. Derlenen diller genellikle daha hızlı çalışır ve daha az kaynak tüketir.

  • Yorumlanan dillerde, kaynak kod, program çalıştırılırken satır satır yorumlanır ve çalıştırılır. Python, JavaScript, Ruby gibi diller yorumlanan dillerdir. Yorumlanan diller genellikle daha esnektir ve geliştirme süreci daha hızlıdır.

Python, yorumlanan bir dildir, yani yazdığınız Python kodunu çalıştırmak için bir Python yorumlayıcısına ihtiyacınız vardır. Yorumlayıcı, kodunuzu satır satır okur ve çalıştırır.

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

Programlama dilleri ayrıca yüksek seviyeli (high-level) ve düşük seviyeli (low-level) olarak da sınıflandırılabilir.

  • Yüksek seviyeli diller, insan diline daha yakın ve anlaşılması daha kolaydır. Python, yüksek seviyeli bir dildir.

  • Düşük seviyeli diller, makine diline daha yakın ve donanıma daha doğrudan erişim sağlar. C, düşük seviyeli bir dil örneğidir.

Python gibi yüksek seviyeli diller, programlamayı daha kolay ve hızlı hale getirir. Ancak, düşük seviyeli diller, performans açısından daha avantajlı olabilir.

1.1.5 Yapay Zeka ve Python: Mükemmel Bir Uyum

Yapay zeka (YZ), bilgisayarların insan benzeri zeka gerektiren görevleri yerine getirebilme yeteneğidir. Öğrenme, problem çözme, karar verme, doğal dil işleme gibi yetenekleri içerir. Son yıllarda, YZ alanında büyük ilerlemeler kaydedildi ve artık hayatımızın birçok alanında kullanılıyor:

  • Öneri Sistemleri: Netflix, Spotify, Amazon gibi platformlarda size özel film, müzik veya ürün önerileri sunar.
  • Sesli Asistanlar: Siri, Alexa, Google Assistant gibi sesli asistanlar, sorularınızı yanıtlar, hatırlatıcılar ayarlar ve cihazlarınızı kontrol eder.
  • Görüntü İşleme: Yüz tanıma, nesne algılama, tıbbi görüntü analizi gibi alanlarda kullanılır.
  • Otonom Araçlar: Kendi kendine giden araçların geliştirilmesinde önemli bir rol oynar.

Python, yapay zeka uygulamaları geliştirmek için en popüler programlama dillerinden biridir. Bunun nedeni, Python’un:

  • Kolay Öğrenilebilir ve Okunabilir Olması: Yeni başlayanlar için bile öğrenmesi ve kullanması kolaydır.
  • Zengin Kütüphane Ekosistemine Sahip Olması: Yapay zeka alanında kullanılan birçok güçlü kütüphane Python ile uyumludur. Örneğin:
    • NumPy: Bilimsel hesaplamalar için temel kütüphane.
    • Pandas: Veri analizi ve manipülasyonu için güçlü bir kütüphane.
    • Scikit-learn: Makine öğrenmesi algoritmaları ve araçları içerir.
    • TensorFlow ve PyTorch: Derin öğrenme modelleri oluşturmak ve eğitmek için kullanılır.
  • Büyük ve Aktif Topluluğa Sahip Olması: Yapay zeka ile ilgilenen geniş bir Python topluluğu vardır, bu da kaynak bulmayı, yardım almayı ve projelerde işbirliği yapmayı kolaylaştırır.

Örnek:

Basit bir makine öğrenmesi örneği:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Iris veri setini yükle
iris = datasets.load_iris()

# Veri setini eğitim ve test kümelerine ayır
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# Lojistik Regresyon modelini oluştur ve eğit
model = LogisticRegression()
model.fit(X_train, y_train)

# Test kümesi üzerinde modelin doğruluğunu hesapla
dogruluk = model.score(X_test, y_test)
print(f"Modelin doğruluğu: {dogruluk}")

Bu örnek, Python’un yapay zeka uygulamaları için ne kadar kolay ve güçlü bir araç olduğunu göstermektedir.

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

ChatGPT, Gemini ve Bard gibi LLM’ler (Large Language Models - Büyük Dil Modelleri), insan dilini anlama ve üretme konusunda inanılmaz yeteneklere sahip yapay zeka modelleridir. Bu modeller, milyarlarca kelime ve cümle üzerinde eğitilerek, soruları yanıtlama, metin yazma, çeviri yapma, kod üretme ve daha birçok dil tabanlı görevi gerçekleştirebilir.

Python ve LLM’ler

Python, LLM’lerle etkileşim kurmak ve bu modelleri kullanarak uygulamalar geliştirmek için ideal bir dildir. Birçok popüler LLM’nin Python API’leri mevcuttur, bu da Python koduyla bu modellere istek göndermeyi ve yanıtları işlemeyi kolaylaştırır.

Örnek:

OpenAI’ın GPT-3 modelini kullanarak bir 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)

Bu örnekte, openai kütüphanesi kullanılarak GPT-3 modeline bir istek gönderiliyor. İstek, özetlenmesini istediğimiz metni ve “Özet:” başlığını içeriyor. Model, metnin kısa bir özetini üretiyor ve bu özet ozet değişkenine atanarak yazdırılıyor.

Yapay zeka, geleceği şekillendiren bir alan ve Python bu alanda önemli bir rol oynuyor. LLM’ler ve Python ile geleceği şekillendirin! Python öğrenerek, siz de bu heyecan verici alana adım atabilir ve geleceğin teknolojilerini geliştirmeye katkıda bulunabilirsiniz!

1.2 Python’un Tarihi ve Gelişimi

Python, Guido van Rossum tarafından Hollanda’daki Ulusal Matematik ve Bilgisayar Bilimleri Araştırma Enstitüsü’nde (CWI) geliştirilmeye başlandı. ABC programlama dilinin ardılı olarak tasarlanan Python, okunabilirlik ve basitliğe odaklanan bir felsefeyle oluşturuldu. Adını ise, Guido van Rossum’un sevdiği İngiliz komedi grubu Monty Python’dan alıyor.

İlk Python sürümü (Python 0.9.0) 1991 yılında yayınlandı. O zamandan beri, Python 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.

1.3 Nesne Tabanlı Programlama (OOP) Nedir?

Nesne yönelimli programlama (OOP), programlamayı daha düzenli, anlaşılır ve yeniden kullanılabilir hale getiren güçlü bir yaklaşımdır.

1.3.1 OOP’nin Temel Bileşenleri

  • Sınıflar (Classes): Nesnelerin şablonlarıdır. Bir sınıf, nesnenin özelliklerini (verilerini) ve metotlarını (davranışlarını) tanımlar.
  • Nesneler (Objects): Sınıfların örnekleridir. Her nesne, sınıf tarafından tanımlanan özelliklere ve metotlara sahiptir.

1.3.2 Başka Nesne Tabanlı Programlama Dilleri

Python dışında, birçok popüler nesne tabanlı programlama dili vardır:

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

1.3.3 Minik Örnekler

# 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...

Bu örnekte, Araba sınıfı, bir arabanın temel özelliklerini (marka, model, renk) ve davranışını (sür) tanımlar. benim_arabam nesnesi oluşturulduğunda, bu özelliklere ve davranışa erişebilir ve kullanabiliriz. sur() metodu çağrıldığında, ekrana “Vınnn! Araba sürülüyor…” yazdırılır.

1.3.4 OOP’nin Temel Prensipleri

OOP’nin temel prensipleri, yukarıdaki örnek üzerinden daha iyi anlaşılabilir:

  • Soyutlama (Abstraction): Araba sınıfı, gerçek bir arabanın tüm detaylarını içermez. Sadece bizim programımız için gerekli olan özellikleri ve davranışı (marka, model, renk, sür) içerir.
  • Kapsülleme (Encapsulation): Araba sınıfı, arabanın özelliklerini ve davranışını bir arada tutar. benim_arabam nesnesi üzerinden bu özelliklere ve davranışa erişebiliriz, ancak nesnenin iç yapısına doğrudan müdahale edemeyiz.
  • Kalıtım (Inheritance): Araba sınıfından, farklı araba türlerini temsil eden yeni sınıflar türetebiliriz (örneğin, SporAraba, SUV). Bu yeni sınıflar, Araba sınıfının özelliklerini ve davranışını devralır ve kendi özelliklerini ve davranışlarını ekleyebilir.
  • Çok Biçimlilik (Polymorphism): Farklı araba türleri, sur() metodunu farklı şekillerde uygulayabilir. Örneğin, SporAraba sınıfının sur() metodu, “Vınnn! Spor araba çok hızlı sürülüyor…” gibi bir çıktı verebilir.

1.3.5 Nesne Tabanlı Programlama Ne İşe Yarar?

OOP, birçok farklı alanda kullanılır:

  • Web Geliştirme: Web uygulamaları geliştirmek için (örneğin, Django ve Flask framework’leri)
  • Oyun Geliştirme: Oyunlar tasarlamak ve geliştirmek için (örneğin, Pygame kütüphanesi)
  • Veri Analizi ve Yapay Zeka: Veri analizi ve makine öğrenmesi modelleri oluşturmak için (örneğin, Pandas ve Scikit-learn kütüphaneleri)
  • Masaüstü Uygulamaları: Masaüstü uygulamaları geliştirmek için (örneğin, PyQt kütüphanesi)
  • Mobil Uygulamalar: Mobil uygulamalar geliştirmek için (örneğin, Kivy framework’ü)

1.4 Python Kurulumu ve İlk Program

1.4.1 Python’u İndirme ve Kurma

Python’u bilgisayarınıza kurmak için, Python’un resmi web sitesi olan python.org adresini ziyaret edin. “Downloads” bölümünden, işletim sisteminize uygun olan Python sürümünü indirin ve kurulum talimatlarını izleyin.

Önemli Not: Kurulum sırasında, “Add Python to PATH” seçeneğini işaretlemeniz önemlidir. Bu, Python’u komut satırından (command prompt) kolayca çalıştırmanızı sağlar.

1.4.2 Geliştirme Ortamı

Python kodunuzu yazmak ve çalıştırmak için bir geliştirme ortamı (IDE - Integrated Development Environment) kullanmanız gerekir. IDE’ler, kod yazmayı, hata ayıklamayı ve programları çalıştırmayı kolaylaştıran birçok özellik sunar.

İşte Python için popüler IDE’lerden bazıları:

  • VSCode (Visual Studio Code): Microsoft tarafından geliştirilen, ücretsiz ve açık kaynaklı, hafif ve güçlü bir editör. Python için birçok uzantı mevcuttur. https://code.visualstudio.com/

  • PyCharm: JetBrains tarafından geliştirilen, Python için özel olarak tasarlanmış, profesyonel bir IDE. Ücretsiz Community Edition ve ücretli Professional Edition sürümleri mevcuttur. https://www.jetbrains.com/pycharm/

  • Sublime Text: Hızlı, hafif ve özelleştirilebilir bir metin editörü. Python için birçok eklenti mevcuttur. https://www.sublimetext.com/

  • Atom: GitHub tarafından geliştirilen, ücretsiz ve açık kaynaklı, hacklenebilir bir metin editörü. Python için birçok paket mevcuttur. https://atom.io/

Hangi IDE’yi seçeceğiniz kişisel tercihinize bağlıdır. Ancak, özellikle yeni başlayanlar için VSCode veya Thonny gibi kullanımı kolay ve ücretsiz bir IDE önerilir.

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

Python’u öğrenirken, etkileşimli kabuğu (interpreter) kullanmak oldukça faydalı olacaktır. Etkileşimli kabuk, Python kodunuzu anında çalıştırmanızı ve sonuçlarını görmenizi sağlar. Komut satırına (command prompt) python yazarak etkileşimli kabuğu başlatabilirsiniz.

Etkileşimli kabukta, değişkenler tanımlayabilir, işlemler yapabilir ve Python kodunuzu test edebilirsiniz.

>>>

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

Geleneksel olarak, programlama öğrenmeye ilk adım “Merhaba Dünya!” programını yazmaktır. Bu basit program, ekrana “Merhaba Dünya!” metnini yazdırır. Python’da bu programı yazmak oldukça kolaydır:

print("Merhaba Dünya!")

Bu tek satırlık kod, print() fonksiyonunu kullanarak “Merhaba Dünya!” metnini ekrana yazdırır.

1.4.5 Programı Çalıştırma

Bu kodu bir metin dosyasına kaydedin (örneğin, merhaba.py). Ardından, komut satırını (command prompt) açın ve dosyanın bulunduğu dizine gidin. Son olarak, python merhaba.py komutunu yazarak programı çalıştırın. Ekranda “Merhaba Dünya!” yazısını göreceksiniz.

Not

Python ile yazılar kodlar için .py uzantısı kullanılır.

Back to top