🐍 0.2: Python Temelleri

Değişkenler, Sabitler, Veri Türleri, Girdi ve Çıktı

📖 Python Nedir?

Python, 1991 yılında Guido van Rossum tarafından geliştirilen, okunabilirliği ve basitliği ile öne çıkan yüksek seviyeli bir programlama dilidir. Öğrenmesi kolay olduğu için hem yeni başlayanlar hem de profesyoneller tarafından tercih edilir.

🎯 Python'un Özellikleri:
  • Basit ve Okunabilir: İngilizceye yakın sözdizimi
  • Dinamik Tipli: Değişken türlerini otomatik algılar
  • Yorumlanan Dil: Derleme gerektirmez, satır satır çalışır
  • Çok Amaçlı: Web, veri bilimi, yapay zeka, oyun geliştirme

📦 1. Değişkenler (Variables)

Değişken, bellekte bir veri saklamak için kullanılan isimlendirilmiş bir alandır. Python'da değişken tanımlamak için tip belirtmeye gerek yoktur.

📌 Değişken Tanımlama

# Sayısal değişkenler
yas = 25
boy = 1.75
sicaklik = -5

# Metin değişkeni
isim = "Ali"
soyisim = 'Yılmaz'

# Boolean (mantıksal) değişken
ogrenci_mi = True
calisıyor_mu = False

# Değişken değerlerini yazdırma
print(isim)     # Çıktı: Ali
print(yas)      # Çıktı: 25
📝 Değişken İsimlendirme Kuralları:
  • Harf veya alt çizgi (_) ile başlamalı
  • Rakamla başlayamaz (örn: 2sayi ❌)
  • Boşluk içeremez (örn: sayi degeri ❌)
  • Özel karakterler kullanılamaz (@, #, $, % vb.)
  • Python anahtar kelimeleri kullanılamaz (if, for, while vb.)
  • Büyük-küçük harf duyarlıdır (sayiSayi)

✅ Geçerli Değişken İsimleri

sayi = 10
_ozel_degisken = 20
sayi1 = 30
ogrenci_adi = "Mehmet"
toplamPuan = 95
SABIT_DEGER = 100

❌ Geçersiz Değişken İsimleri

# Bu satırlar hata verir:
# 2sayi = 10         # Rakamla başlayamaz
# sayi degeri = 20   # Boşluk içeremez
# if = 30            # Anahtar kelime
# sayi@ = 40         # Özel karakter

🔒 2. Sabitler (Constants)

Sabitler, programın çalışması boyunca değişmeyen değerlerdir. Python'da resmi bir sabit tanımlama yöntemi yoktur, ancak BÜYÜK HARF kullanarak sabit olduğunu belirtiriz.

📌 Sabit Tanımlama

# Sabitler büyük harfle yazılır (konvansiyon)
PI = 3.14159
EULER = 2.71828
MAX_OGRENCI = 50
MIN_YAS = 18
UNIVERSITE_ADI = "Anadolu Üniversitesi"

# Kullanım
yaricap = 5
alan = PI * yaricap ** 2
print("Daire alanı:", alan)
⚠️ Not: Python'da sabitler gerçekte değiştirilebilir. BÜYÜK HARF kullanmak sadece bir konvansiyondur ve programcıya "bu değeri değiştirme" mesajı verir.

📊 3. Veri Türleri (Data Types)

Python'da temel veri türleri şunlardır:

Tür Açıklama Örnek
int Tam sayı 5, -10, 0, 1000
float Ondalıklı sayı 3.14, -2.5, 0.0
str Metin (string) "Merhaba", 'Python'
bool Mantıksal (True/False) True, False

📌 Veri Türlerini Öğrenme - type()

sayi = 10
ondalik = 3.14
metin = "Merhaba"
mantiksal = True

print(type(sayi))      # 
print(type(ondalik))   # 
print(type(metin))     # 
print(type(mantiksal)) # 

📌 Tür Dönüşümleri

# int() - Tam sayıya dönüştür
sayi = int("25")       # "25" -> 25
sayi2 = int(3.9)       # 3.9 -> 3 (ondalık atılır)

# float() - Ondalıklı sayıya dönüştür
ondalik = float("3.14")  # "3.14" -> 3.14
ondalik2 = float(5)      # 5 -> 5.0

# str() - Metne dönüştür
metin = str(123)       # 123 -> "123"
metin2 = str(3.14)     # 3.14 -> "3.14"

# bool() - Mantıksal değere dönüştür
b1 = bool(1)           # True (0 dışındaki sayılar True)
b2 = bool(0)           # False
b3 = bool("metin")     # True (boş olmayan string)
b4 = bool("")          # False (boş string)

📥 4. Girdi (Input) ve Çıktı (Output)

🖨️ print() - Ekrana Yazdırma

📌 Temel print() Kullanımı

# Basit yazdırma
print("Merhaba Dünya!")

# Birden fazla değer yazdırma
isim = "Ali"
yas = 25
print("Adı:", isim)
print("Yaşı:", yas)

# Tek satırda birden fazla değer
print("Adı:", isim, "Yaşı:", yas)

# Değişkenleri birleştirerek yazdırma
print("Merhaba " + isim + "!")  # String concatenation

📌 print() Parametreleri

# sep - Değerler arası ayraç (varsayılan: boşluk)
print("A", "B", "C")           # A B C
print("A", "B", "C", sep="-")  # A-B-C
print("A", "B", "C", sep="")   # ABC

# end - Satır sonu karakteri (varsayılan: \n)
print("Merhaba", end=" ")
print("Dünya")                 # Merhaba Dünya

# Satır atlamadan yan yana yazdırma
print("1", end=", ")
print("2", end=", ")
print("3")                     # 1, 2, 3

📌 f-string ile Formatlı Yazdırma

isim = "Ahmet"
yas = 20
boy = 1.756

# f-string (Python 3.6+) - En pratik yöntem
print(f"Adım {isim}, yaşım {yas}")
print(f"Boyum: {boy:.2f} metre")  # 2 ondalık

# Hesaplama yaparak yazdırma
a, b = 5, 3
print(f"{a} + {b} = {a + b}")  # 5 + 3 = 8

⌨️ input() - Kullanıcıdan Veri Alma

📌 Temel input() Kullanımı

# input() her zaman STRING döndürür!
isim = input("Adınız: ")
print("Merhaba", isim)

# Sayı almak için tür dönüşümü gerekir
yas = int(input("Yaşınız: "))
print("Gelecek yıl", yas + 1, "yaşında olacaksınız")

# Ondalıklı sayı almak
boy = float(input("Boyunuz (metre): "))
print("Boyunuz:", boy, "metre")
⚠️ Önemli: input() fonksiyonu her zaman string (metin) döndürür. Matematiksel işlem yapacaksanız int() veya float() ile dönüştürmeniz gerekir!

📌 Örnek: İki Sayının Toplamı

# Kullanıcıdan iki sayı al
x = float(input("Birinci sayı: "))
y = float(input("İkinci sayı: "))

# Toplamı hesapla ve yazdır
toplam = x + y
print(f"{x} + {y} = {toplam}")

📌 Örnek: Dairenin Alanı

PI = 3.14

# Yarıçapı al
r = float(input("Yarıçap: "))

# Alanı hesapla
alan = PI * r ** 2

# Sonucu yazdır
print(f"Dairenin alanı: {alan:.2f}")

💬 5. Yorum Satırları (Comments)

Yorumlar, kodun ne yaptığını açıklamak için kullanılır. Python yorumları çalıştırmaz, bunlar sadece programcılar içindir.

📌 Tek Satırlık Yorum

# Bu bir yorum satırıdır
x = 5  # Değişkene 5 değeri atanıyor

# Yorumlar kodun anlaşılmasını kolaylaştırır
# Karmaşık işlemleri açıklamak için kullanılır

📌 Çok Satırlık Yorum

"""
Bu çok satırlık bir yorumdur.
Birden fazla satır yazabilirsiniz.
Genellikle fonksiyon açıklamaları için kullanılır.
"""

'''
Tek tırnak ile de
çok satırlık yorum
yazılabilir.
'''
💡 İyi Yorum Yazma İpuçları:
  • Kodun ne yaptığını değil, neden yaptığını açıklayın
  • Karmaşık algoritmaları adım adım anlatın
  • Geçici çözümleri (hack) mutlaka açıklayın
  • Çok açık olan kodlara gereksiz yorum eklemeyin

🎯 6. Pratik Örnekler

📌 Örnek 1: Kişisel Bilgi Kartı

# Kullanıcı bilgilerini al
ad = input("Adınız: ")
soyad = input("Soyadınız: ")
yas = int(input("Yaşınız: "))
sehir = input("Şehriniz: ")

# Bilgileri güzel formatta yazdır
print("\n===== KİŞİSEL BİLGİ KARTI =====")
print(f"Ad Soyad: {ad} {soyad}")
print(f"Yaş: {yas}")
print(f"Şehir: {sehir}")
print("================================")

📌 Örnek 2: Dikdörtgen Alan ve Çevre

# Kenar uzunluklarını al
kisa = float(input("Kısa kenar: "))
uzun = float(input("Uzun kenar: "))

# Hesaplamalar
alan = kisa * uzun
cevre = 2 * (kisa + uzun)

# Sonuçları yazdır
print(f"\nDikdörtgen Özellikleri:")
print(f"Alan: {alan} birim²")
print(f"Çevre: {cevre} birim")

📌 Örnek 3: Celsius - Fahrenheit Dönüşümü

# Celsius değerini al
celsius = float(input("Celsius değeri: "))

# Fahrenheit'a dönüştür
# Formül: F = C × 9/5 + 32
fahrenheit = celsius * 9/5 + 32

# Sonucu yazdır
print(f"{celsius}°C = {fahrenheit}°F")

📌 Örnek 4: Üç Sayının Ortalaması

# Üç sayıyı al
a = float(input("Birinci sayı: "))
b = float(input("İkinci sayı: "))
c = float(input("Üçüncü sayı: "))

# Ortalamayı hesapla
ortalama = (a + b + c) / 3

# Sonucu yazdır
print(f"Ortalama: {ortalama:.2f}")

📋 Özet

Bu Derste Öğrendiklerimiz:
  1. Değişkenler: Verileri saklamak için isimlendirilmiş bellek alanları
  2. Sabitler: Değişmeyen değerler (BÜYÜK HARF ile yazılır)
  3. Veri Türleri: int, float, str, bool
  4. print(): Ekrana çıktı vermek için
  5. input(): Kullanıcıdan veri almak için (string döner)
  6. Yorumlar: Kod açıklamaları için # ve """ kullanımı
🎯 Hatırlatmalar:
  • input() her zaman string döndürür
  • Sayısal işlemler için int() veya float() kullanın
  • f-string ile formatlı yazdırma çok pratiktir: f"Değer: {x}"

🌐 Python ve Diğer Programlama Dilleri

Programlama Dillerinin Ortak Yönleri

Tüm programlama dilleri benzer temel kavramları içerir: değişkenler, döngüler, koşullar, fonksiyonlar...

İyi haber: Bir dili öğrendiğinizde, diğerlerini öğrenmek çok daha kolay olur. Genellikle sadece sözdizimi (syntax) değişir!

Python vs Diğer Diller: Temel Farklar

🏷️ Değişken Tür Tanımlama

Python'da veri türü otomatik (implicit) belirlenir:

# Python - Tür belirtmeye gerek yok
x = 10          # Python otomatik olarak int anlar
isim = "Ali"    # Python otomatik olarak str anlar

Diğer dillerde (C, Java) tür açıkça (explicit) belirtilir:

# C dilinde - Tür belirtmek zorunlu
# int x = 10;
# char isim[] = "Ali";

# Java dilinde
# int x = 10;
# String isim = "Ali";

📦 Liste vs Dizi (Array)

Python listesi: Farklı türler, dinamik boyut

# Python - Farklı türler ve dinamik boyut
liste = [1, "hello", 3.14, True]
liste.append(42)  # Boyut otomatik büyür

C dizisi: Tek tür, sabit boyut

# C dilinde - Tek tür, boyut önceden belirtilmeli
# int dizi[5] = {1, 2, 3, 4, 5};  // Sadece int, 5 eleman

🔄 Blok Yapısı: Girinti vs Süslü Parantez

Python: Girinti (indentation) ile blok belirlenir

# Python - Girinti zorunlu
if x > 0:
    print("Pozitif")  # 4 boşluk girinti
    x = x + 1
print("Bitti")  # if bloğunun dışında

C, Java, JavaScript: Süslü parantez {} ile blok belirlenir

# C, Java, JavaScript - Süslü parantez
# if (x > 0) {
#     printf("Pozitif");
#     x = x + 1;
# }
# printf("Bitti");

🔁 for Döngüsü

Python: Koleksiyon üzerinde doğrudan iterasyon

# Python - Basit ve okunabilir
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

for eleman in liste:
    print(eleman)

C tarzı: Sayaç ile klasik döngü

# C, Java - Klasik for döngüsü
# for (int i = 0; i < 5; i++) {
#     printf("%d\n", i);
# }
💡 Python'un Avantajları:
  • Okunabilirlik: Kod İngilizce gibi okunur
  • Hızlı geliştirme: Daha az kod, daha fazla iş
  • Geniş kütüphane: Hemen her şey için hazır modül
⚡ Python'un Dezavantajları:
  • Hız: C/C++'a göre yavaş (yorumlanan dil)
  • Bellek: Daha fazla RAM kullanır
  • Tür güvenliği: Hatalar çalışma zamanında ortaya çıkar
🎯 Önemli Mesaj

Bu farklılıklara rağmen, programlama mantığı tüm dillerde aynıdır. Algoritma düşüncesi, problem çözme yaklaşımı, veri yapıları kavramları evrenseldir.

Python'u iyi öğrenirseniz, Java, JavaScript, C# gibi dillere geçiş çok kolay olur!