Python’a geçiş: çalışma modeli, türler ve temel ifadeler

Bu bölümde programlamayı sıfırdan öğrenmeyeceğiz. Değişken, ifade, girdi, çıktı ve veri türü gibi kavramları daha önce C ile gördünüz. Buradaki amaç, aynı fikirlerin Python’da nasıl ifade edildiğini hızlı biçimde kurmak, iki dil arasındaki önemli çalışma farklarını görünür hâle getirmek ve dönem boyunca kullanacağımız yerel Python ortamını hazır hâle getirmektir.

Bu hafta neleri yapabilmelisiniz?

Bölümün sonunda:

  • Python kodunun blok yapısını ve girintinin rolünü açıklayabilmeli,
  • int, float, str ve bool değerleri kullanabilmeli,
  • input() ile alınan verinin neden str olduğunu açıklayabilmeli,
  • Tür dönüşümü yapabilmeli,
  • Aritmetik, karşılaştırma ve mantıksal ifadeler kurabilmeli,
  • +=, -=, *=, /= gibi birleşik atamaları okuyup kullanabilmeli,
  • Negatif sayılarda C ile Python’ın // ve % davranışının farklı olabileceğini açıklayabilmeli,
  • f-string ile okunabilir çıktı üretebilmeli,
  • Kısa C kodu ile eşdeğer Python kodunu karşılaştırabilmeli,
  • Basit bir Python programının çıktısını çalıştırmadan önce tahmin edebilmeli,
  • Bilgisayarınızda Python ve VS Code’u kurup basit bir .py dosyasını çalıştırabilmelisiniz.

Çalışma ortamını hazırlayın

Ders sayfasındaki Pyodide hücreleri kısa denemeleri kurulum yapmadan çalıştırmak için uygundur. Ancak 4. haftadan itibaren birden fazla dosya ve 13. haftada paket yapısı kullanacağımız için yerel Python ortamı bu dersin çalışma aracıdır.

Başlangıçta üç parçayı ayırın:

  • Python yorumlayıcısı: .py dosyasını gerçekten çalıştırır.
  • Visual Studio Code (VS Code): kodu yazıp düzenlediğimiz editördür.
  • Microsoft Python eklentisi: VS Code’a Python desteği ve yorumlayıcı seçimi ekler.

Python’ı kurun ve sürümü doğrulayın

Python’ı resmî python.org/downloads sayfasından kurun. Bu dersin ilerleyen haftalarındaki list[str] ve Product | None sözdizimini sorunsuz kullanmak için Python 3.10 veya daha yeni bir sürüm gereklidir; güncel desteklenen sürümü tercih edin.

Windows’ta python.org kurulum programını kullanıyorsanız Add Python to PATH seçeneğini etkinleştirin. Ardından terminalde:

py --version

veya gerekirse:

python --version

macOS/Linux’ta:

python3 --version

çıktısını kontrol edin. Python 3.10 veya daha yeni bir sürüm görmelisiniz.

WarningWindows’ta python Microsoft Store’u açıyorsa

Önce py --version komutunu deneyin. Python’ı python.org’dan kurduğunuz hâlde python komutu Store’a yönleniyorsa Ayarlar → Uygulamalar → Gelişmiş uygulama ayarları → Uygulama yürütme diğer adları bölümündeki Store python.exe/python3.exe diğer adlarını kapatmanız gerekebilir.

VS Code ve Python eklentisi

  1. code.visualstudio.com adresinden VS Code’u kurun.
  2. Extensions / Eklentiler bölümünde Python aratıp yayıncısı Microsoft olan eklentiyi kurun.
  3. Gerekirse Komut Paleti’nden Python: Select Interpreter komutuyla az önce doğruladığınız Python 3 sürümünü seçin.

Ders için bir klasör açıp hafta01.py oluşturun:

print("Merhaba, Python!")

Dosyayı VS Code’daki Run Python File düğmesiyle çalıştırın. Terminalden çalıştırmak isterseniz Windows’ta py hafta01.py, macOS/Linux’ta python3 hafta01.py kullanabilirsiniz.

TipKurulumda takılırsanız AI’den yardım isteyebilirsiniz

Kurulum ve ortam sorunlarında AI kullanabilirsiniz. İşletim sisteminizi, yaptığınız adımı ve hata mesajını olduğu gibi verin; örneğin “Windows kullanıyorum, py --version şu hatayı veriyor: … Sırayla neleri kontrol etmeliyim?” gibi. Önerilen komutun ne yaptığını anlamadan uygulamayın; parola, erişim anahtarı veya kişisel bilgi paylaşmayın.

ImportantBu haftanın yerel ortam kontrolü

Dersi tamamlamadan önce bilgisayarınızda hafta01.py dosyasını hem VS Code’dan hem terminalden en az bir kez çalıştırın. Böylece 4. ve 13. haftadaki çok dosyalı görevlerde ilk kez çalışma ortamıyla uğraşmak zorunda kalmazsınız.

C’den Python’a geçerken ilk fark

C’de değişkenin türünü bildirim sırasında açıkça yazarız:

Python’da bir değişken adının bir değere bağlandığını ve tür bilgisinin değerde bulunduğunu gösteren diyagram.

Adın değere bağlanması
int age = 20;
double average = 78.5;

Python’da değişken adı bir değere bağlanır; türü değişken bildiriminde ayrıca yazmayız:

age = 20
average = 78.5

Bu, Python’da türlerin olmadığı anlamına gelmez. 20 bir int, 78.5 bir float nesnesidir. Fark, değişken adının önceden sabit bir türe bildirilmemesidir.

Important“Tür yok” değil, “tür değerde”

Python güçlü ve dinamik tür sistemine sahiptir. Bir değerin türü vardır; ancak değişken adı çalışma sırasında farklı türde başka bir değere bağlanabilir. Bu esneklik rahatlık sağlarken yanlış varsayımları da kolaylaştırabilir.

İlk karşılaştırma

Aşağıdaki Python kodunu çalıştırmadan önce her satırın ne yazdıracağını tahmin edin.

type() bir değerin çalışma anındaki türünü görmemizi sağlar. Bu derste sık sık “ben bunun ne olduğunu sanıyordum?” sorusunu type() ile doğrulayacağız.

input() her zaman metin döndürür

C’de scanf() biçim belirteciyle doğrudan sayısal değişkene veri okuyabilirsiniz. Python’da input() kullanıcının yazdığını metin olarak döndürür.

input ile alınan metnin sayısal işlem öncesinde uygun türe dönüştürülmesini gösteren akış.

input() ve tür dönüşümü

Web sürümündeki Pyodide hücrelerinde terminal tipi etkileşim yerine sabit örnek değer kullanacağız. Böylece aynı hücre hem tarayıcıda hem PDF’de öngörülebilir biçimde okunabilir:

Yerel Python ortamında kullanıcıdan veri almak istediğimizde input() kullanabiliriz. Sayısal işlem yapmak istiyorsak açık dönüşüm gerekir:

age = int(input("Yaş: "))
price = float(input("Fiyat: "))

Tahmin et

İlk sonuç neden 15 değil? Çünkü +, iki str değeri için metin birleştirme anlamına gelir.

Temel operatörler

Amaç Python Örnek
toplama + a + b
çıkarma - a - b
çarpma * a * b
gerçek bölme / 7 / 23.5
taban bölme // 7 // 23
kalan % 7 % 21
üs ** 2 ** 38
eşitlik == score == 50
eşit değil != score != 50
küçük / büyük <, > age > 18
küçük-eşit / büyük-eşit <=, >= score >= 50
mantıksal ve and age >= 18 and active
mantıksal veya or admin or owner
mantıksal değil not not active

C’deki &&, || ve ! yerine Python’da okunabilir sözcükler kullanılır: and, or, not.

Negatif sayılarda // ve %: C alışkanlığını taşımayın

Pozitif sayılarda ilk sezgi çoğu zaman yeterlidir; negatif sayılarda ise C ile Python farklı sonuç verebilir. Python’da // sonucu aşağıya doğru (floor) yuvarlanır:

Python sonucu -4 ve 1 olur. C’de tamsayı bölme sıfıra doğru kırpıldığı için benzer ifade tipik olarak -3 ve -1 üretir. Python’da bölüm ve kalan şu ilişkiyi korur:

a == (a // b) * b + (a % b)

Bu nedenle negatif değerli indeks, takvim, döngüsel sayaç veya koordinat hesabında C’deki sonucu varsaymayın; küçük bir örnekle doğrulayın.

Birleşik atamalar

Python’da da mevcut değeri güncelleyen kısa yazımlar kullanılır:

balance += 50
stock -= 1
price *= 0.90
average /= 2

Örneğin stock -= 1, stock = stock - 1 ile aynı güncelleme niyetini ifade eder. Sonraki haftalarda nesne durumunu değiştirirken bu biçimleri sık göreceksiniz.

f-string ile okunabilir çıktı

Değişkenleri metne yerleştirmenin en okunabilir yollarından biri f-string’dir:

Başındaki f, {...} içindeki Python ifadelerinin değerlendirilmesini sağlar. Böylece "Not: " + str(score) gibi gereksiz tür dönüşümü ve metin birleştirme zincirlerinden kaçınabiliriz.

Girinti neden sözdiziminin parçası?

Python’da {} ile blok sınırı çizmek yerine girinti kullanılır:

if score >= 50:
    print("Geçti")
    print("Tebrikler")

print("Program bitti")

İlk iki print koşul bloğundadır. Son satır blok dışındadır. Girinti yalnızca görünüm tercihi değil, programın yapısının bir parçasıdır.

Warning

Sekme ve boşlukları bilinçsiz karıştırmak sorun çıkarabilir. Bu derste editörün otomatik girintisini kullanın ve bir blokta tutarlı biçimde dört boşluk tercih edin.

Alıştırma — C kodunu Python’a çevir

Aşağıdaki C kodunun davranışını düşünün:

int first = 40;
int second = 60;
double average = (first + second) / 2.0;
printf("%.1f\n", average);

Python karşılığındaki boşluğu tamamlayın.

Python’da / gerçek bölme yapar. (first + second) / 2 yeterlidir.

average = (first + second) / 2

Alıştırma — Tür hatasını bul

Aşağıdaki kod bilinçli olarak sorunludur:

Önce hata türünü tahmin edin. Ardından age değerini uygun biçimde dönüştürerek programın 21 yazdırmasını sağlayın.

Bu hata söz dizimi hatası değildir. Kod yapısal olarak okunabilir; fakat str ile int doğrudan toplanamaz. Bu nedenle çalışma zamanında TypeError oluşur.

Alıştırma — İfadeyi değiştir

Aşağıdaki program bir ürünün KDV dahil tutarını hesaplıyor.

Şunları sırayla deneyin:

  1. Fiyatı 399.90 yapın.
  2. KDV oranını %10 yapın.
  3. Sonucu round(final_price, 2) ile iki ondalığa yuvarlayın.
  4. type(final_price) sonucunu inceleyin.

Küçük üretim görevi — Ölçüm dönüştürücü

Santimetre cinsinden bir uzunluğu metreye dönüştüren kısa bir program yazın. Örnek:

Girdi: 175
Çıktı: 1.75 metre

Web sürümünde sabit bir cm değeri kullanın. Yerel Python ortamında aynı çözümü input() ile kullanıcıdan değer alacak biçimde genişletin ve çıktıyı f-string ile üretin.

Çözümünüzde en az şu üç adım görünür olsun:

  1. Değeri alma veya örnek değeri belirleme,
  2. Sayısal dönüşüm/hesaplama,
  3. Sonucu yazdırma.

Çalışır kod teslimi: hafta01.py dosyanız en az iki farklı girdiyle çalışmalı; kullandığınız Python sürümünü de dosyanın altına yorum olarak yazın.

Kendinizi kontrol edin

  1. Python’da input() neden çoğu sayısal problemde tek başına yeterli değildir?
  2. 7 / 2 ile 7 // 2 arasındaki fark nedir?
  3. -7 // 2 neden -4 olur?
  4. == ile = neden aynı değildir?
  5. score += 5 neyi değiştirir?
  6. C’deki {} bloklarının Python’daki karşılığı nedir?
  7. Bir değişkenin adı sabit bir türe sahip olmak zorunda mıdır?
  8. f-string’deki {score} ne işe yarar?

Bu haftadan akılda kalması gerekenler

  • Python, daha önce bildiğiniz programlama kavramlarını daha az sözdizimiyle ifade eder.
  • Az sözdizimi, daha az düşünme gerektirdiği anlamına gelmez.
  • input() metin döndürür; tür dönüşümünü bilinçli yapın.
  • Negatif sayılarda // ve % için C davranışını varsaymayın.
  • Karşılaştırma ve birleşik atama operatörleri sonraki örneklerde sık kullanılacaktır.
  • f-string, değerleri okunabilir biçimde metne yerleştirir.
  • Web hücreleri hızlı deney içindir; yerel Python + VS Code çok dosyalı çalışmaların temel ortamıdır.
  • Girinti programın yapısının parçasıdır.
  • type() ve küçük deneyler, Python’ın çalışma modelini doğrulamak için kullanışlıdır.

Gelecek hafta koşul ve döngüleri hızlıca Python’a taşıyacak, ardından Python’ın string üzerinde doğrudan dolaşma gibi C’den farklı güçlü yönlerini kullanacağız.

Back to top