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. Bu hafta C’de yazdığınız türden kısa bir programı Python’a çevireceğiz. Yazımın nerede değiştiğini ve iki dilin nerede farklı çalıştığını göreceğiz. Bölümün sonunda da dönem boyunca kullanacağımız Python’ı kendi bilgisayarınıza kuracaksınız.
Bu bölümün kapsamı
- C’den Python’a geçerken değişen yazım kuralları: noktalı virgül, süslü parantez,
:ve yorum satırı - Girintinin blok yapısının parçası olması
- C’nin derlenmesi ile Python’ın yorumlanması: hatanın ne zaman ortaya çıktığı ve hız farkı
- 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ı and,or,notile karşılaştırma ifadeleri- f-string ile okunabilir çıktı
- 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ı- Bytecode ve
__pycache__ayrıntısı - Etkileşimli kabukta deneme yapmak
Kurulumu yapmanız gerekiyor, ama adımlarını ezberlemeniz beklenmiyor. Float ayrıntısı ise ileride karşınıza çıkacak.
Bu C programı Python’a çevrilince ne değişir?
Programlama Temelleri’nde buna benzer bir program yazmış olabilirsiniz. Program vize ve final notunu okuyor, ortalamayı hesaplıyor ve öğrencinin geçip geçmediğini yazıyor:
#include <stdio.h>
int main(void) {
int midterm, final;
scanf("%d", &midterm);
scanf("%d", &final);
// vize %40, final %60
int average = (midterm * 4 + final * 6) / 10;
if (average >= 50 && final >= 50) {
printf("Geçti, ortalama: %d\n", average);
} else {
printf("Kaldı, ortalama: %d\n", average);
}
return 0;
}Bu programı Python’a satır satır çevirdiğinizi düşünün. Hangi satırlar olduğu gibi kalır, hangileri değişir? Okumaya devam etmeden önce aklınıza gelen farkları bir kenara yazın.
Bazı farkları hemen görürsünüz, noktalı virgül bunlardan biri. Bazıları ise yazımda görünmez, ancak program çalışınca ortaya çıkar. Kullanıcı vize için 45, final için 64 yazdığında C programı Geçti, ortalama: 56 yazar. Python’a satır satır çevrilmiş hâli ise nasıl çevirdiğinize göre ya hata verir ya da 56 yerine başka bir sayı yazar.
Bölüm bu farkları sırayla anlatıyor. Sonunda programın Python hâlini birlikte yazacağız, siz de listenizi onunla karşılaştıracaksınız.
C’den gelince yazımda değişenler
Bir dilin yazım kurallarına söz dizimi (syntax) denir. Söz dizimine uymayan bir dosya hiç çalışmaz, Python ilk satırı bile çalıştırmadan SyntaxError verir. Açılıştaki programın yazımı Python’da şu yerlerde değişir:
| C’de | Python’da |
|---|---|
#include <stdio.h> ve int main(void) { ... } |
Gerekmez. Python dosyayı ilk satırdan başlayarak çalıştırır. |
Her deyimin sonunda ; |
Yazılmaz. Her satır bir deyimdir. |
Bloğu { ve } sınırlar |
Blok, satır sonundaki : ile açılır ve girintili satırlardan oluşur. |
if (average >= 50) |
if average >= 50: yazılır. Koşulun çevresinde parantez gerekmez. |
} else { |
else: yazılır. |
// vize %40, final %60 |
# vize %40, final %60. Yorum # ile başlar. |
Açılıştaki if bloğu Python’da şöyle yazılır:
# vize %40, final %60
if average >= 50 and final >= 50:
print("Geçti")
else:
print("Kaldı")&& yerine gelen and sözcüğünü “Temel operatörler” başlığında göreceğiz.
C alışkanlığıyla iki hata sık yapılır. Birincisi, satır sonuna ; koymaktır. Python buna hata vermez, ama Python kodunda bu alışkanlık yoktur, siz de yazmayın. İkincisi, yorumu // ile başlatmaktır. Python’da // yorum değil, bir bölme operatörüdür. // vize %40 satırı bu yüzden SyntaxError verir.
Girinti neden söz diziminin parçası?
Python’da {} ile blok sınırı çizmek yerine girinti kullanılır. Aşağıdaki kod hücresinde (sayfada Run Code düğmesi olan kod kutusu) score değeri 30:
İlk iki print koşul bloğundadır. Son satır blok dışındadır. C’de derleyici girintiye bakmaz, bloğu {} belirler. Python’da ise bloğun nerede başlayıp bittiğini girinti söyler.
Girinti bozulduğunda iki şey olabilir. İkisini de yukarıdaki hücrede deneyin:
- İkinci
printsatırının girintisini silerseniz hata çıkmaz. Satır hata vermeden bloğun dışına çıkar ve koşul yanlışken deTebrikleryazılır. ifsatırının hemen altındaki satırın girintisini silerseniz PythonIndentationErrorverir, çünküifsatırından sonra girintili bir blok bekler.
Birinci durum daha tehlikelidir, çünkü program hata vermeden yanlış çalışır. Bu bölümde aynı türden iki fark daha göreceksiniz: input() ile okunan değer ve bölme işlemleri.
Aynı blokta sekme (Tab) ve boşluk karışırsa Python TabError verebilir. VS Code, Python dosyasında Tab tuşuna bastığınızda dört boşluk koyar. Editörün otomatik girintisini kullanın ve her girinti düzeyi için dört boşluk yazın.
C derlenir, Python yorumlanır
Açılıştaki C programını çalıştırmadan önce derlersiniz. Derleyici (ör. gcc) bütün kaynak kodu baştan sona okur. Bir hata bulursa çalıştırılacak program hiç oluşmaz. Hata yoksa işlemcinin doğrudan çalıştırabildiği makine kodunu içeren bir dosya oluşturur, Windows’ta bu bir .exe dosyasıdır. Program bundan sonra derleyiciye gerek duymadan çalışır. C’ye bu yüzden derlenen dil denir.
Python’da böyle ayrı bir adım yoktur. python hesap.py yazdığınızda yorumlayıcı (interpreter) dosyayı okur ve satırları sırayla çalıştırır. Python’a bu yüzden yorumlanan dil denir. Bu farkın iki sonucu var.
Hata ne zaman çıkar? Aşağıdaki programın ikinci satırı hatalı:
print("Başladı")
toplam = "20" + 1
print(toplam)Python ilk satırı çalıştırır ve Başladı yazar. Hata ancak ikinci satıra gelince TypeError olarak çıkar. C’de tür uyuşmazlıklarının çoğunu derleyici, program çalışmadan önce bildirir. Python’da ise bir satırdaki hatayı o satır çalışana kadar göremeyebilirsiniz. Hiç çalışmayan bir if dalındaki hata, program yüzlerce kez çalışsa da gizli kalabilir. Bu yüzden programınızı her dalı en az bir kez çalıştıracak girdilerle deneyin. Söz dizimi hataları bunun dışındadır: Python onları dosyayı çalıştırmaya başlamadan bulur. if satırının sonundaki : eksikse ilk satır bile çalışmaz.
Hız. C programı işlemcinin doğrudan anladığı koda çevrildiği için hızlı çalışır. Python’da yorumlayıcı her adımda işe karışır: değerin türüne bakar, + işaretinin o tür için ne demek olduğunu bulur, sonra işlemi yapar. Bu yüzden aynı döngü Python’da çoğu zaman C’dekinden kat kat yavaş çalışır. Buna karşılık Python’da derlemeyi beklemeden bir satırı değiştirip hemen deneyebilirsiniz. Ağır hesap yapan Python kütüphaneleri de asıl işi C ile yazılmış koda bırakır. Bu derste yazacağımız küçük programlarda hız farkını hissetmezsiniz.
Derlenir, ama C’deki gibi değil. Kullandığımız Python yorumlayıcısı (CPython) kodu çalıştırmadan önce bytecode denen bir ara koda çevirir. Bytecode işlemcinin anladığı makine kodu değildir, onu da yorumlayıcı adım adım çalıştırır. 4. haftada bir modülü import ile içe aktardığınızda klasörde beliren __pycache__ dizini bu kodu saklar. “Derlenen” ve “yorumlanan” aslında dilin değil, onu çalıştıran aracın özelliğidir. Günlük dilde yine de C’ye derlenen, Python’a yorumlanan dil denir.
Değişken bildirimi yok
Açılıştaki C programı int midterm, final; satırıyla iki değişken bildiriyor. 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 ayrı bir bildirim yoktur. Atama, adı bir değere bağlar; türü yazmayız:
age = 20
average = 78.5Aynı ad sonra başka türde bir değere de bağlanabilir. Şemada age adı önce 20 sayısına, sonra "20" metnine bağlanıyor:
Bu, Python’da türlerin olmadığı anlamına gelmez. 20 bir int, 78.5 bir float değeridir. Python bellekteki her değeri bir nesne olarak tutar. Şimdilik nesneyi, değerle birlikte türünü de taşıyan bir bellek parçası olarak düşünün. Nesne kavramını 6. haftada ayrıntılı göreceğiz.
Python’ın tür sistemi hem dinamik hem güçlüdür. Dinamik: tür bilgisi çalışma anında değerle gelir; aynı ad sonra farklı türde bir değere bağlanabilir. Güçlü: Python metni sayıya, sayıyı metne kendiliğinden çevirmez; "20" + 1 hata vermeden 21 olmaz, TypeError verir. Sayılar arasında ise çevirir: 1 + 2.5 işleminde 1 önce float olur ve sonuç 3.5 çıkar. Adın türü sabit olmadığı için bir adın o anda hangi türde değere bağlı olduğunu da siz takip edersiniz.
Türe type() ile bakın
Aşağıdaki Python kodunu çalıştırmadan önce her satırın ne yazdıracağını tahmin edin.
True ve False bool türündendir. C’de doğru ve yanlış için çoğunlukla 1 ve 0 kullanılır; Python’da bu iki değerin kendi türü vardır ve büyük harfle yazılır.
type() bir değerin o anki türünü gösterir. Bu derste “bu değer sandığım türde mi?” sorusunu sık sık type() ile yanıtlayacağı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.
Sayfadaki hücreler klavyeden girdi beklemez. Kullanıcının yazacağı değeri bu yüzden bir değişkene sabit olarak veriyoruz. Böylece hücrenin ne göstereceği tarayıcıda da PDF’de de önceden bellidir:
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: "))int() yalnızca tamsayı gibi yazılmış bir metni çevirebilir. Kullanıcı abc yazarsa program ValueError ile durur. int("3.5") de aynı hatayı verir, çünkü 3.5 bir tamsayı yazımı değildir. Bu hatada tür doğrudur (int() bir str alabilir); sorun metnin içeriğindedir.
Tahmin et
İlk sonuç neden 15 değil? Çünkü +, iki str değeri için metin birleştirme anlamına gelir.
Açılıştaki programda scanf("%d", &midterm) satırını midterm = input() diye çevirirseniz aynı tuzağa düşersiniz. Kullanıcı 45 yazınca midterm * 4 işlemi "45454545" metnini verir, çünkü * bir metni tekrarlar. Program hata vermeden ilerler ve ancak / 10 işlemine gelince TypeError verir. Doğru karşılık midterm = int(input()) satırıdır.
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.
Bölmede de açılıştaki programı ilgilendiren bir fark var. C’de iki int bölününce sonuç yine int olur. Vize 45, final 64 iken 564 / 10 işlemi 56 verir. Python’da / her zaman float döndürür, aynı işlem 56.4 olur. C’deki tamsayı bölmesinin Python’daki karşılığı // operatörüdür.
Python karşılaştırmaları zincirleme yazmanıza da izin verir. 0 <= score <= 100 ifadesi 0 <= score and score <= 100 anlamına gelir. C’de aynı yazım derlenir ama başka bir şey hesaplar: önce 0 <= score sonucu 0 ya da 1 olur, sonra bu sonuç 100 ile karşılaştırılır.
Negatif sayılarda // ve %: C alışkanlığını taşımayın
Pozitif sayılarda // ve %, C’deki tamsayı bölmesi ve kalanla aynı sonucu verir. Negatif sayılarda ise iki dil ayrılır. C’de eksi yediyi ikiye bölen ve kalanı bulan şu iki satırı düşünün:
printf("%d\n", -7 / 2);
printf("%d\n", -7 % 2);Python’daki karşılığı aşağıda. Çıktıya bakmadan önce iki dilin aynı sonucu verip vermediğini tahmin edin:
Python sonucu -4 ve 1 olur. Python’da // sonucu aşağıya doğru (floor) yuvarlar. C’de tamsayı bölmesi sıfıra doğru kırpılır (C99’dan beri standart gereği); bu yüzden C’de -7 / 2 ve -7 % 2 hesabı -3 ve -1 verir. Python’da bölüm ve kalan şu ilişkiyi korur:
a == (a // b) * b + (a % b)
-7 için kontrol edelim: (-4) * 2 + 1 işlemi -7 eder. Bölüm aşağı yuvarlandığı için kalan, bölenle aynı işareti alır.
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 yazmak, stock = stock - 1 yazmakla aynıdır. Sonraki haftalarda bir hesabın bakiyesini ya da bir ürünün stoğunu güncellerken bu yazımı sık göreceksiniz.
C’den gelirken iki farka dikkat edin:
- Python’da
++ve--operatörü yoktur;stock++bir söz dizimi hatası (SyntaxError) verir. Daha sinsi olanı++stock: hata vermez ama hiçbir şeyi değiştirmez, çünkü Python onu iki kez art arda yazılmış+işareti olarak okur. Artırmak içinstock += 1yazın. /=işleminin sonucu her zamanfloatolur.count = 7ikencount /= 2sonucu3.5olur; C’deki gibi3değil.
f-string ile okunabilir çıktı
Değişkenleri metne yerleştirmenin en okunabilir yollarından biri f-string’dir:
Tırnağın önündeki f harfi sayesinde Python {...} içindeki ifadeleri hesaplar ve sonucu metnin o noktasına koyar. :.1f kısmı C’deki printf("%.1f") ile aynı işi yapar: değeri tek ondalık basamağa yuvarlayarak yazar. Böylece "Not: " + str(score) gibi, her değeri str() ile çevirip + ile eklediğimiz uzun satırlara gerek kalmaz.
Açılıştaki printf("Geçti, ortalama: %d\n", average) satırı Python’da print(f"Geçti, ortalama: {average}") olur. print() satır sonunu kendisi ekler, \n yazmanız gerekmez.
Açılıştaki programın Python hâli
Bölümün başındaki C programı Python’da şöyle yazılır:
midterm = int(input())
final = int(input())
# vize %40, final %60
average = (midterm * 4 + final * 6) // 10
if average >= 50 and final >= 50:
print(f"Geçti, ortalama: {average}")
else:
print(f"Kaldı, ortalama: {average}")Vize 45, final 64 girildiğinde program C’deki gibi Geçti, ortalama: 56 yazar. Değişen yerler şunlar:
#include,mainvereturn 0satırları yok. Python dosyayı ilk satırdan çalıştırır.- Noktalı virgül ve süslü parantez yok.
ifveelsesatırları:ile biter, bloğu girinti belirler. - Yorum
//ile değil#ile başlar. int midterm, final;bildirimi yok. Tür, adın bağlandığı değerde durur.scanf("%d", ...)yerineint(input())yazılır, çünküinput()metin döndürür.- Ortalama
//ile hesaplanır./yazılırsa sonuç56.4olur. &&yerineandyazılır.printfyerine f-string kullanılır.
Bölümün başında yazdığınız listeyle karşılaştırın. input() ve / farkları listenizde var mıydı? Bu ikisi yazımda görünmez, program ancak çalışınca ortaya çıkar.
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.
C’de 2.0 yazmanızın nedeni tamsayı bölmesinden kaçmaktı. Python’da / işleminin sonucu hangi türdür?
average = (first + second) / 2Alıştırma: Tür hatasını bul
Aşağıdaki kod bilerek hatalı yazıldı:
Ö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. Kodun yazımında bir sorun yok, ama str ile int doğrudan toplanamaz. Bu yüzden hata program çalışırken çıkar: TypeError. Düzeltmek için next_year = int(age) + 1 yazın.
Alıştırma: İfadeyi değiştir
Aşağıdaki program bir ürünün KDV dâhil tutarını hesaplıyor.
Şunları sırayla deneyin:
- Fiyatı
399.90yapın. - KDV oranını %10 yapın (
vat_rate = 0.10). - f-string’deki
:.2fkısmını silip çalıştırın. Sonra:.2fkısmını geri koyun veprint(round(final_price, 2))satırını ekleyin. İki çıktıyı karşılaştırın::.2fyalnızca yazılışı biçimlendirir,round()ise yeni bir sayı döndürür. print(type(final_price))satırını ekleyip sonucu inceleyin.
Çalışma ortamını hazırlayın
Bu bölümdeki kodları şimdiye kadar sayfadaki hücrelerde çalıştırdık. Hücreler Python’ı tarayıcıda çalıştırır, kısa denemeler için kurulum gerekmez. Ancak 4. haftadan itibaren birden fazla dosyayla, 13. haftada da Python paketleriyle çalışacağız. Bu yüzden bu derste çoğunlukla kendi bilgisayarınıza kurduğunuz Python’ı (yerel Python ortamını) kullanacağız.
Önce şu üç parçayı birbirinden 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 bu eklentiyle Python kodunu tanır. Hangi Python yorumlayıcısıyla çalışacağınızı da buradan seçersiniz.
Python’ı kurun ve sürümü doğrulayın
Python’ı resmî python.org/downloads sayfasından kurun. İlerleyen haftalarda list[str] ve Product | None gibi yazımlar kullanacağız. Bunlar için Python 3.10 veya daha yeni bir sürüm gerekir. Desteği süren en yeni sürümü kurun.
Windows’ta Python 3.14’ten beri önerilen kurulum yolu Python install manager programıdır. Bu programı python.org indirme sayfasından indirebilirsiniz; Microsoft Store’daki Python Install Manager da aynı programdır. Bilgisayarda henüz Python yoksa ilk python ya da py komutu güncel sürümü kendisi indirir. Eski anlatımlarda geçen, Add Python to PATH seçenekli kurulum programı 3.14’ten beri önerilmiyor ve 3.16’dan sonra hiç yayımlanmayacak.
Kurulumdan sonra yeni bir terminal açın. Windows’ta Başlat menüsüne Terminal yazın (Windows 10’da PowerShell). VS Code içinden de Terminal > New Terminal menüsüyle açabilirsiniz. Ardından sürümü kontrol edin:
py --version
py komutu bulunamazsa:
python --version
macOS ve Linux’ta:
python3 --version
Ekranda Python 3.10 ya da daha yeni bir sürüm görmelisiniz.
python Microsoft Store’u açıyorsa
Terminal gerçek bir Python yorumlayıcısı bulamıyor demektir. Install manager’ı kurduğunuzdan emin olun. Ardından Başlat menüsünde Uygulama yürütme diğer adlarını yönet sayfasını açıp Python (default) diğer adlarının açık olduğunu kontrol edin; açıksa bir kez kapatıp yeniden açın. Bu diğer adları kapatmayın; install manager python ve py komutlarını onlar üzerinden çalıştırır.
Etkileşimli kabukta deneyin
C’de küçük bir şeyi denemek için bile dosya yazıp derlemeniz gerekiyordu. Python’da buna gerek yok. Terminale py yazdığınızda (macOS ve Linux’ta python3) aynı pencerede >>> işareti belirir. Bu hâline etkileşimli kabuk (interactive shell) denir: yazdığınız her satırı Python hemen çalıştırır ve sonucunu altına yazar.
Bu bölümdeki iki farkı kabukta kendiniz görün:
>>> 7 / 2
3.5
>>> -7 // 2
-4
>>> type("45")
<class 'str'>
>>> exit()
>>> işaretini siz yazmazsınız. Python sıranın size geldiğini göstermek için onu kendisi koyar.
print() gerekir
Kabukta 7 / 2 yazınca altında 3.5 görünür. Aynı satırı hafta01.py dosyasına yazıp çalıştırırsanız ekranda hiçbir şey çıkmaz. Kabuk, yazdığınız işlemin sonucunu kendiliğinden gösterir. Dosyadaki programda ise C’deki gibi yalnızca yazdırdığınız görünür, burada printf yerine print() ile.
VS Code ve Python eklentisi
- code.visualstudio.com adresinden VS Code’u kurun.
- Sol taraftaki Extensions / Eklentiler bölümünde (
Ctrl+Shift+X)Pythonaratıp yayıncısı Microsoft olan eklentiyi kurun. - VS Code yorumlayıcıyı kendiliğinden bulamazsa Komut Paleti’ni (
Ctrl+Shift+P) açıp 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ı kaydedin ve sağ üstteki Run Python File düğmesiyle çalıştırın. Terminalden çalıştırmak için Windows’ta py hafta01.py, macOS ve Linux’ta python3 hafta01.py yazın. Terminalin dosyanın bulunduğu klasörde açık olması gerekir. VS Code’un Terminal > New Terminal menüsüyle açılan terminal zaten açtığınız klasörde başlar.
Kurulum ve ortam sorunlarında AI (yapay zekâ) araçlarını 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?” Önerilen komutun ne yaptığını anlamadan uygulamayın; parola, erişim anahtarı veya kişisel bilgi paylaşmayın.
Gelecek haftaki derse kadar 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.
Sıra sizde: Ö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
Sayfadaki hücrede sabit bir cm değeri kullanın. Kendi bilgisayarınızda aynı çözümü, değeri input() ile kullanıcıdan alacak biçimde genişletin ve çıktıyı f-string ile yazdırın.
Çözümünüz şu üç adımdan oluşsun:
- Değeri alma ya da örnek değeri belirleme
- Sayısal dönüşüm ve hesaplama
- Sonucu yazdırma
Başarı ölçütü: hafta01.py dosyanız en az iki farklı girdiyle doğru sonuç versin. Kullandığınız Python sürümünü dosyanın sonuna yorum satırı olarak yazın. Python’da yorum # ile başlar (C’deki // gibi):
# Python 3.14.0Tek sayfa özet
- Python’da satır sonunda
;, blok için{}yoktur.ifveelsesatırları:ile biter, bloğu girinti belirler. Yorum#ile başlar;//bir bölme operatörüdür. - C derlenir, Python yorumlanır. Python’da tür hatası ancak o satır çalışınca ortaya çıkar. Aynı döngü Python’da genellikle C’dekinden yavaştır.
- Python’da tür bilgisi değişken adında değil değerdedir;
type()o anki değerin türünü gösterir. - Aynı ad farklı türde bir değere yeniden bağlanabilir, ama Python metni sayıya kendiliğinden çevirmez:
"20" + 1birTypeErrorverir. input()her zamanstrdöndürür. Sayı gerekiyorsaint()ya dafloat()ile açıkça çevirin; çevrilemeyen metinValueErrorverir./her zamanfloatverir.//aşağı yuvarlar,%kalanı verir,**üs alır.- Negatif sayılarda
//ve%C’den farklı sonuç verir: Python’da-7 // 2sonucu-4,-7 % 2sonucu1. - Python’da
++ve--yoktur;x += 1yazılır. - Mantıksal operatörler
and,or,notsözcükleridir. - f-string değerleri metne yerleştirir;
{score:.1f}değeri tek ondalıkla yazar. - Yanlış girinti bazen
IndentationErrorverir, bazen hiç hata vermeden programın anlamını değiştirir. - Sayfadaki hücreler hızlı deneme içindir; çok dosyalı çalışmalarda yerel Python ve VS Code kullanılır.
Gelecek hafta koşulları ve döngüleri Python’da yazacağız. C’den farklı olarak bir metnin karakterleri üzerinde doğrudan dolaşmayı da göreceğiz.
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ı yazdırır.
- Girintinin yalnızca görünüş için olmadığını, bloğun sınırını belirlediğini açıklar.
and,or,notile karşılaştırma ifadeleri kurar ve sonucunu tahmin eder.- C’nin derlenmesi ile Python’ın yorumlanması arasındaki farkı, hatanın ne zaman ortaya çıktığı ve hız üzerinden açıklar.
- C’deki bir kod parçasının Python söz dizimine uygun karşılığını seçer:
;ve{}yerine:ve girinti,//yerine#ile yorum.