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 ve iki dil arasındaki önemli çalışma farklarını görünü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,
  • 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 edebilmelisiniz.

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:

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.

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
tam sayı bölme // 7 // 23
kalan % 7 % 21
üs ** 2 ** 38
eşitlik == score == 50
eşit değil != 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.

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ü daha sonra input() ile kullanıcıdan değer alacak biçimde genişletebilirsiniz.

Çö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.

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. == ile = neden aynı değildir?
  4. C’deki {} bloklarının Python’daki karşılığı nedir?
  5. Bir değişkenin adı sabit bir türe sahip olmak zorunda mıdır?

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.
  • Web sürümündeki çalıştırılabilir hücrelerde terminal girdisi yerine yeniden üretilebilir örnek değerler kullanacağız.
  • 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