Tüm parçaları birleştirmek: Bir yazılım nasıl doğar?
Tebrikler, programlamanın temel yapı taşlarını tek tek öğrendiniz: Değişkenler ile verileri saklamayı, Koşullar (if/else) ile karar vermeyi, Döngüler (for/while) ile tekrarlayan işleri otomatikleştirmeyi ve Fonksiyonlar ile kodunuzu modüler parçalara bölmeyi kavradınız.
Gerçek bir yazılım, bu bağımsız parçaların tek bir amaca hizmet edecek şekilde birbiriyle uyum içinde çalışmasıyla doğar. Bir bilgisayar programının temel işleyiş döngüsü daima şu dört adımdan oluşur:
- 1. Girdi alma (Input): Kullanıcıdan ya da dış dünyadan veri alınır.
- 2. İşleme ve Hesaplama (Process): Alınan veriler değişkenler ve formüller aracılığıyla işlenir.
- 3. Karar verme (Condition): Koşullara bakılarak hangi yolun izleneceği belirlenir.
- 4. Çıktı üretme (Output): Üretilen sonuçlar kullanıcıya print() ile sunulur.
KısayolYazılımın temel formülü: Girdi Al → İşle ve Karar Ver → Çıktı Üret. Bütün büyük uygulamalar bu döngü üzerine kuruludur.
Kullanıcıyla etkileşim: input() fonksiyonu
Şimdiye kadar yazdığımız kodlarda değişkenlerin değerlerini hep elle biz yazdık. Oysa gerçek programlar kullanıcıyla sohbet eder, ona sorular sorar ve aldığı cevaplara göre çalışır. Python’da kullanıcıdan klavye yoluyla veri almak için input() fonksiyonu kullanılır.
input() çalıştığı anda program durur ve kullanıcının bir şeyler yazıp Enter tuşuna basmasını bekler. Yazılan metin değişkene aktarılır.
Yeni başlayanların en çok düştüğü ölümcül tuzak şudur: input() fonksiyonu kullanıcı ne yazarsa yazsın DAİMA bir metin (str) döndürür. Kullanıcı klavyeden 25 yazsa bile Python bunu sayı olarak değil, tırnak içindeki "25" metni olarak alır.
| Kullanıcı girdisi | Kod örneği | Dönen değer ve tip | Matematiksel işlem yapılabilir mi? |
|---|---|---|---|
Kullanıcı 18 yazar | yas = input("Yaş:") | "18" (str - metin) | Hayır (+ toplamaz, birleştirir: "18" + "2" = "182"; sayıyla toplanırsa TypeError verir) |
Kullanıcı 18 yazar | yas = int(input("Yaş:")) | 18 (int - tam sayı) | Evet (toplama, çıkarma yapılabilir) |
Kullanıcı 3.5 yazar | notu = float(input("Not:")) | 3.5 (float - ondalık) | Evet (ondalıklı hesaplama yapılabilir) |
Dönüşüm KuralıKullanıcıdan sayı alacaksanız daima int(input()) veya float(input()) yazın; aksi halde sayılar metin gibi davranır.
Örnek. Aşağıdaki kod çalıştırılıp kullanıcı klavyeden 10 ve 20 sayılarını girdiğinde ekrana ne yazdırır?s1 = input("1. sayı: ")
s2 = input("2. sayı: ")
print(s1 + s2)
- input() her iki girdiyi de str (metin) olarak alır: s1 = "10" ve s2 = "20".
- Metinlerde + operatörü birleştirme yapar.
- "10" + "20" = "1020" olur.
- print("1020") basılır.
Cevap1020 (sayılar int() ile dönüştürülmediği için metin olarak birleşir)
Programın iskeleti: while True döngüsü ve Menü mimarisi
Basit kodlar tek bir işlem yaptıktan hemen sonra kapanır. Oysa gerçek bir konsol uygulaması kullanıcı «çıkış» diyene kadar açık kalmalı, menüyü tekrar tekrar ekrana getirmelidir.
Bu süreklilik while True sonsuz döngüsüyle sağlanır. Kullanıcı belirli bir çıkış tuşuna (örneğin "ç" veya "q" veya "0") bastığında döngü break komutu ile kırılır ve program başarıyla kapanır.
| Menü bileşeni | Python karşılığı | İşlevi |
|---|---|---|
| Ana döngü | while True: | Kullanıcı çıkana kadar programı sürekli ayakta tutar |
| Seçenek menüsü | print("1- Topla\n2- Çıkış") | Kullanıcıya yapabileceği işlemleri listeler |
| Seçim alma | secim = input("Seçiminiz: ") | Kullanıcının tercihini kaydeder |
| Çıkış kapısı | if secim == "2": break | Döngüyü kırıp programı kibarca sonlandırır |
Kısayolwhile True döngüsü yazıyorsanız içine mutlaka bir if koşuluyla break koyun; aksi halde kullanıcı programı kapatamaz.
Tam Proje: Sayı Tahmin Oyunu
Şimdi bütün bu kavramları bir araya getiren klasik bir Sayı Tahmin Oyunu inşa edelim. Bilgisayarın aklında tuttuğu gizli sayı 42 olsun:
hedef = 42hak = 5while hak > 0:tahmin = int(input("Tahmininiz: "))if tahmin == hedef:print("Tebrikler! Doğru bildiniz.")breakelif tahmin < hedef:print("Daha büyük bir sayı söyleyin.")else:print("Daha küçük bir sayı söyleyin.")hak -= 1
Örnek. Yukarıdaki Sayı Tahmin Oyununda kullanıcı ilk hakkında 30 tahminini yaparsa ekranda ne görür ve kalan hakkı kaç olur?
- hedef = 42, tahmin = 30.
- tahmin == hedef (30 == 42) False.
- tahmin < hedef (30 < 42) True → "Daha büyük bir sayı söyleyin." yazdırılır.
- hak -= 1 çalışır ve kalan hak 5 - 1 = 4 olur.
Cevap"Daha büyük bir sayı söyleyin." yazar ve 4 hakkı kalır.
Temiz kod (Clean Code) ve Hata önleme disiplini
Çalışan bir kod yazmak başlangıçtır; iyi bir yazılımcı olmak ise başkalarının da kolayca okuyup anlayabileceği temiz kod yazmayı gerektirir.
- Anlamlı değişken isimleri:
a, b, x, y1gibi anlamsız harfler yerinekullanici_yasi, hedef_sayi, kalan_hakgibi görevi anlatan isimler kullanın. - İşleri fonksiyonlara bölmek: Yüz satırlık dev bir kod bloğu yazmak yerine, her işi yapan küçük fonksiyonlar tanımlayın (örneğin
puan_hesapla(),menuyu_goster()). - Kullanıcı dostu mesajlar: Program sessizce beklememeli, kullanıcıya ne yapması gerektiğini açık ve net yönlendirmelerle söylemelidir.
Örnek. Aşağıdaki kod parçası çalıştırıldığında ekrana ne basılır?def selamla(kullanici):
return f"Hoş geldin, {kullanici}!"
ad = "Deniz"
mesaj = selamla(ad)
print(mesaj)
- selamla fonksiyonu "Deniz" argümanını alır.
- f"Hoş geldin, Deniz!" metnini üretir ve return eder.
- mesaj değişkeni bu değeri saklar.
- print(mesaj) ekrana basar.
CevapHoş geldin, Deniz!
Testten önce bunları bil
- input() daima string üretir, sayıyı dönüştürün
Kullanıcıdan sayı alırken int(input()) veya float(input()) kullanmazsanız toplama işlemi metin birleştirmeye dönüşür.
- while True döngüsünden çıkış kapısı (break) koyun
Çıkış seçeneği konulmayan sonsuz döngüler programın donmasına ve kullanıcının kilitlenmesine yol açar.
- Değişkenlerinize tek harf yerine anlamlı isimler verin
kullanici_adi veya toplam_puan gibi isimler kodunuzun aylar sonra bile kolayca okunmasını sağlar.
- Büyük görevleri küçük fonksiyonlara ayırın
Tek bir fonksiyona her işi yaptırmak yerine her göreve özel tek bir fonksiyon yazın.
Kendini dene
Cevaba dokun — neden öyle olduğunu birlikte görelim.
Python’da input() fonksiyonunun kullanıcıdan aldığı verinin varsayılan veri tipi nedir?
Aşağıdaki kod parçası çalıştırıldığında kullanıcı klavyeden 5 girerse ekrana ne yazdırılır?girdi = input("Sayı: ")
print(girdi * 2)
Kullanıcıdan alınan bir yaş bilgisini tam sayı olarak matematiksel karşılaştırmada kullanmak için doğru kod satırı hangisidir?
Bir konsol programında kullanıcının «çıkış» diyene kadar menüyü açık tutmasını sağlayan standart döngü yapısı hangisidir?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?sayac = 0
while True:
sayac += 1
if sayac == 3:
break
print(sayac)
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?def hesap(x):
return x + 5
s = 10
print(hesap(s))
Bir bilgisayar programının temel işleyiş mimarisini oluşturan doğru mantıksal sıra hangisidir?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?deger = int("40") + int("2")
print(deger)
Yazılımda «Temiz Kod (Clean Code)» ilkelerine göre aşağıdakilerden hangisi önerilmez?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?puan = 100
def sifirla():
puan = 0
sifirla()
print(puan)
Alıştırma bitti — –
Bütün konular Kodlama müfredatında.
0/10 · soru cevaplandı