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 bölümün kapsamı
- tür bilgisinin değişken adında değil değerde durması
input()dönüşününstrolması ve açık tür dönüşümü/,//,%ve**operatörlerinin ayrımı- negatif sayılarda
//ve%davranışının C’den farkı - f-string ile okunabilir çıktı
- girintinin blok yapısının parçası olması
and,or,notile karşılaştırma ifadeleri
- Python ve VS Code kurulumunun adımları
- Windows’ta
py/ Microsoft Store yönlendirmesi ayrıntısı floatdeğerlerin ikili gösterim ayrıntıları
Bu başlıklar konunun devamıdır; ileride karşınıza çıkar ama bu derste ezberlemeniz beklenmiyor.
Aynı program C’de ve Python’da neden farklı sonuç verebilir?
Sözdizimini yan yana koyduğunuzda iki dil birbirine benzer. Farklar sözdiziminde değil davranıştadır: türün nerede durduğu, input() çağrısının ne döndürdüğü ve negatif sayılarda bölmenin hangi yöne yuvarlandığı. Bu üçünü bilmeden yazılan kod çoğu zaman çalışır; yalnızca yanlış sonuç verir.
Ç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ı:
.pydosyası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.
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
- code.visualstudio.com adresinden VS Code’u kurun.
- Extensions / Eklentiler bölümünde
Pythonaratıp yayıncısı Microsoft olan eklentiyi kurun. - 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.
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.
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:
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 |
| taban bölme | // |
7 // 2 → 3 |
| kalan | % |
7 % 2 → 1 |
| üs | ** |
2 ** 3 → 8 |
| 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.
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ü 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:
- Değeri alma veya örnek değeri belirleme,
- Sayısal dönüşüm/hesaplama,
- 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.
Tek sayfa özet
- 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.
Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- Python’da tür bilgisinin değişken adında değil değerde durduğunu açıklar.
input()çağrısınınstrdöndürdüğünü bilir ve sayısal işlem için açık dönüşüm yapar./,//,%ve**operatörlerini birbirinden ayırır.- Negatif sayılarda Python’ın
//ve%davranışının C’den farkını açıklar. - f-string ile okunabilir çıktı üretir.
- Girintinin görünüm tercihi değil blok yapısının parçası olduğunu belirler.
and,or,notile karşılaştırma ifadeleri kurar ve sonucunu tahmin eder.