Kodlama

İlk küçük program

input() · while True · break · Proje

01

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.

02

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ı girdisiKod örneğiDönen değer ve tipMatematiksel işlem yapılabilir mi?
Kullanıcı 18 yazaryas = input("Yaş:")"18" (str - metin)Hayır (+ toplamaz, birleştirir: "18" + "2" = "182"; sayıyla toplanırsa TypeError verir)
Kullanıcı 18 yazaryas = int(input("Yaş:"))18 (int - tam sayı)Evet (toplama, çıkarma yapılabilir)
Kullanıcı 3.5 yazarnotu = 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)

03

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şeniPython 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 almasecim = input("Seçiminiz: ")Kullanıcının tercihini kaydeder
Çıkış kapısıif secim == "2": breakDö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.

04

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 = 42
  • hak = 5
  • while hak > 0:
  •     tahmin = int(input("Tahmininiz: "))
  •     if tahmin == hedef:
  •         print("Tebrikler! Doğru bildiniz.")
  •         break
  •     elif 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.

05

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, y1 gibi anlamsız harfler yerine kullanici_yasi, hedef_sayi, kalan_hak gibi 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!

İpuçları

Testten önce bunları bil

  1. 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.

  2. 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.

  3. 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.

  4. 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.

06

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?

input() fonksiyonu kullanıcı rakam bile yazsa alınan girdiyi daima string (str) veri tipinde saklar.

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)

input() metin döndürdüğü için girdi "5" metnidir. Metinler 2 ile çarpıldığında tekrarlanır: "5" * 2 = "55" olur.

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?

Girdinin matematiksel tam sayıya çevrilmesi için input() fonksiyonu int() içine alınmalıdır.

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?

while True sonsuz döngüsü programı sürekli ayakta tutar; kullanıcı çıkış seçtiğinde break ile döngüden çıkılır.

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)

sayac sırayla 1, 2 ve 3 olur. sayac == 3 olduğunda break çalışır ve döngü biter; ekrana 3 basılır.

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))

hesap(10) fonksiyonu 10 + 5 = 15 değerini döndürür ve print bu 15 değerini ekrana basar.

Bir bilgisayar programının temel işleyiş mimarisini oluşturan doğru mantıksal sıra hangisidir?

Tüm yazılımlar Input (Girdi), Process (İşleme/Karar) ve Output (Çıktı) temel sıralamasıyla çalışır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
deger = int("40") + int("2")
print(deger)

int("40") tam sayı 40’a, int("2") tam sayı 2’ye dönüşür. 40 + 2 = 42 tam sayısı toplanarak basılır.

Yazılımda «Temiz Kod (Clean Code)» ilkelerine göre aşağıdakilerden hangisi önerilmez?

Anlamsız ve tek harfli değişken isimleri kodun okunabilirliğini ve bakımını zorlaştırır; temiz kod anlamlı isimler gerektirir.

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)

sifirla fonksiyonu içindeki puan değişkeni yereldir (local scope); dışarıdaki küresel puan değişkenini etkilemez. print(puan) 100 basar.

Alıştırma bitti — –

Bütün konular Kodlama müfredatında.

0/10 · soru cevaplandı

Kendini dene