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,strvebooldeğerleri kullanabilmeli,input()ile alınan verinin nedenstrolduğ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.5Bu, 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.
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 / 2 → 3.5 |
| tam sayı bölme | // |
7 // 2 → 3 |
| kalan | % |
7 % 2 → 1 |
| üs | ** |
2 ** 3 → 8 |
| 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.
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) / 2Alış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:
- Fiyatı
399.90yapın. - KDV oranını
%10yapın. - Sonucu
round(final_price, 2)ile iki ondalığa yuvarlayın. 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:
- değeri alma veya örnek değeri belirleme,
- sayısal dönüşüm/hesaplama,
- sonucu yazdırma.
Kendinizi kontrol edin
- Python’da
input()neden çoğu sayısal problemde tek başına yeterli değildir? 7 / 2ile7 // 2arasındaki fark nedir?==ile=neden aynı değildir?- C’deki
{}bloklarının Python’daki karşılığı nedir? - 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.