Skip to main content

Python While Döngüsü

Giriş

Bilgisayar programları, bizim tekrar tekrar yapmamıza gerek kalmadan işleri otomatikleştirmek ve tekrarlamak için harikadır.
Benzer işlemleri tekrar etmenin yollarından biri de döngüler kullanmaktır.

Bu derste Python’un while döngüsünü ele alacağız.

While Döngüsünün Mantığı

while döngüsü, verilen bir Boolean (doğru/yanlış) koşuluna bağlı olarak kodun tekrar tekrar çalıştırılmasını sağlar.
Yani while bloğunun içindeki kod, koşul True olduğu sürece çalışmaya devam eder.

While döngüsünü, tekrar eden bir if ifadesi gibi düşünebilirsin.

  • if koşulu sağlanırsa kod bir kez çalışır ve devam eder.
  • while koşulu sağlandığında ise kod çalışır ve sonra tekrar başa dönüp koşulu kontrol eder. Koşul False olana kadar bu döngü sürer.

for döngüsünden farkı:

  • for döngüsü genelde belirli bir sayıda tekrar eder.
  • while döngüsünde ise koşula bağlı tekrar vardır, kaç defa çalışacağını önceden bilmek gerekmez.

Ön Gereksinimler

Bilgisayarında ya da sunucunda Python 3 kurulu olmalı ve bir programlama ortamı ayarlanmış olmalı.
Eğer böyle bir ortam henüz yoksa, işletim sistemine (Ubuntu, CentOS, Debian vb.) uygun kurulum ve ortam hazırlama rehberlerini takip ederek Python’u yükleyip gerekli ortamı hazırlayabilirsin.

While Döngüsü

Python’da while döngüsü şu şekilde yazılır:

while koşul:
# koşul True olduğu sürece çalışacak kodlar

Koşul True olduğu sürece, döngü içindeki işlemler tekrar tekrar çalıştırılır.
Koşul artık False olduğunda ise döngü sona erer.

Hadi küçük bir kod bloğu yazalım ve while döngüsünü kullanalım.
Bu programda kullanıcıdan bir şifre girmesini isteyeceğiz.
Döngü devam ederken iki olasılık olacak:

  • Eğer şifre doğruysa, while döngüsü sonlanacak.
  • Eğer şifre yanlışsa, while döngüsü çalışmaya devam edecek.

Bir metin editöründe sifre.py adında bir dosya oluşturacağız.
İlk adım olarak, password değişkenini boş bir string ile başlatalım:

password = " "

Boş string ("") değeri, while döngüsü içinde kullanıcıdan alınacak girdiyi saklamak için kullanılacak.

Şimdi, koşulu ile birlikte while döngüsünü yazalım:

password = ""

while password != "python123":

Burada while ifadesinden sonra password değişkeni ile yapılan karşılaştırma var.
Amacımız, kullanıcının girdiği değerin belirlediğimiz string (örneğin "password") ile aynı olup olmadığını kontrol etmek.
Sen kendi istediğin stringi seçebilirsin.

  • Eğer kullanıcı "password" stringini girerse, döngü duracak ve program döngü dışındaki kodlara devam edecek.
  • Eğer kullanıcı farklı bir şey girerse, koşul sağlanmaya devam edecek ve döngü tekrar çalışacak.

Şimdi while döngüsünün içine yapılacak işlemi ekleyelim:

password = ""

while password != "python123":
password = input("Şifreyi girin: ")
print("Yanlış şifre, tekrar deneyin...")

While döngüsünün içinde program, kullanıcıdan şifre istemek için bir print ifadesi çalıştırıyor.
Sonra password değişkenine input() fonksiyonu ile girilen değer atanıyor.

Program her seferinde password değişkenini kontrol ediyor. Eğer değişken "password" (bizim seçtiğimiz doğru şifre) ile eşitse, döngü sona eriyor.

Bu durumda döngü bittikten sonra çalışacak bir satır daha ekleyelim:

password = ""

while password != "python123":
password = input("Şifreyi girin: ")
print("Yanlış şifre, tekrar deneyin...")

print("Şifre doğru! Giriş yapıldı ✅")

Son print() ifadesi while döngüsünün dışında yer alıyor.
Bu yüzden kullanıcı doğru şifreyi ("password" olarak belirlediysek) girdiğinde, döngü biter ve ekrana bu son mesaj yazdırılır.

Ama kullanıcı hiçbir zaman doğru şifreyi girmezse, program sürekli döngüde kalır ve bu bir sonsuz döngü (infinite loop) olur.

Sonsuz döngüden çıkmak için komut satırında CTRL + C tuş kombinasyonunu kullanabilirsin.

Şimdi programı kaydedip çalıştır:

python password.py

Programı çalıştırdığında senden bir şifre isteyecek.
Farklı girdiler deneyerek sonucu test edebilirsin.

Output
Şifreyi girin: test
Yanlış şifre, tekrar deneyin...
Şifreyi girin: 12345
Yanlış şifre, tekrar deneyin...
Şifreyi girin: python123
Şifre doğru! Giriş yapıldı ✅

Unutma: Stringler büyük/küçük harf duyarlıdır.
Yani "Python123" ile "python123" aynı kabul edilmez.


While Döngüsü ile Örnek Program

Artık while döngüsünün temel mantığını anladığımıza göre, bunu kullanarak bir komut satırı tahmin oyunu yapalım.
Bu programda while döngüsü etkin bir şekilde kullanılacak.

Programın nasıl çalıştığını en iyi şekilde anlamak için ayrıca koşullu ifadeler (if, else) ve veri tipi dönüştürme konularını da incelemeni öneririm.

İlk olarak, tercih ettiğimiz bir metin editöründe tahmin.py adında bir dosya oluşturacağız.
Kullanıcının tahmin etmesi için bilgisayarın rastgele sayılar üretmesini istediğimizden, import ifadesiyle random modülünü ekleyeceğiz.

Eğer bu paketle daha önce çalışmadıysan, rastgele sayı üretme hakkında daha fazla bilgiye Python belgelerinden ulaşabilirsin.

import random

Sonraki adımda, number değişkenine rastgele bir tam sayı atayacağız.
Aralığı 1 ile 20 arasında tutacağız ki oyun çok zor olmasın.

import random

number = random.randint(1, 20)

Bu noktada artık while döngüsünü kurmaya başlayabiliriz.
Önce bir değişken tanımlayıp ardından döngüyü oluşturacağız.

import random

number = random.randint(1, 25)

tahmin_hakki = 0

while tahmin_hakki < 5:
print("1 ile 25 arasında bir sayı tahmin et:")

tahmin = input()
tahmin = int(tahmin)

tahmin_hakki = tahmin_hakki + 1

if tahmin == number:
break

Başlangıçta tahmin_hakki değişkenini 0 olarak tanımladık.
Her döngü çalıştığında bu değeri 1 artırıyoruz. Böylece sonsuz döngü oluşmasını engellemiş olduk.

while koşulunda tahmin_hakki < 5 yazdığımız için, kullanıcının toplamda 5 tahmin hakkı bulunuyor.
Beşinci tahminden sonra döngü bitiyor ve kullanıcı komut satırına geri dönüyor.

Şu anki haliyle, eğer kullanıcı tam sayı (integer) dışında bir şey girerse program hata verecektir.

Döngünün içinde kullanıcıya bir sayı girmesi için print() ile mesaj gösteriyoruz.
Sonra input() fonksiyonu ile aldığımız değeri tahmin değişkenine atıyoruz.
Bu değer varsayılan olarak string tipinde olduğu için, int() ile tam sayıya çeviriyoruz.

Döngü bitmeden önce tahmin_hakki değişkenini 1 artırıyoruz, böylece döngü en fazla 5 kere çalışabiliyor.

Ardından bir if koşulu ile kullanıcının tahmini bilgisayarın ürettiği sayıya eşit mi diye kontrol ediyoruz.
Eğer eşitse, break ifadesiyle döngüden çıkıyoruz.

Program artık tamamen çalışır durumda. Çalıştırmak için şu komutu kullanabilirsin:

python tahmin.py

Program şu anda çalışıyor, fakat bir eksik var:
Kullanıcı doğru tahmin yapıp yapmadığını bilmiyor. Yani 5 kere tahmin etse bile, doğruyu buldu mu bulmadı mı görmüyor.

Şu anki haliyle programın çıktısı şöyle görünüyor:

Output

1 ile 20 arasında bir sayı tahmin et:
10
1 ile 20 arasında bir sayı tahmin et:
7
1 ile 20 arasında bir sayı tahmin et:
14
1 ile 20 arasında bir sayı tahmin et:
5
1 ile 20 arasında bir sayı tahmin et:
18

Şimdi döngüden sonra bazı koşullu ifadeler ekleyelim ki kullanıcı doğru tahmin edip etmediğini görebilsin.
Bu satırlar mevcut dosyanın en sonuna eklenecek:

if tahmin == sayi:
print("Tebrikler! Sayıyı doğru bildiniz 🎉")
else:
print(f"Üzgünüm, tahmin hakkınız bitti. Doğru sayı {sayi} idi.")

Artık program, kullanıcının doğru ya da yanlış tahmin yaptığını söylüyor ama bu bilgi yalnızca tahmin hakkı bitince ortaya çıkıyor.

Kullanıcıya yol göstermek için while döngüsüne birkaç koşullu ifade ekleyelim.
Bunlar, girilen sayının çok küçük mü yoksa çok büyük mü olduğunu belirtecek.
Bu sayede kullanıcı doğru tahmine daha kolay yaklaşabilecek.

Kodumuzda if tahmin == sayi: satırından önce şunları ekleyebiliriz:

while tahmin_hakki < 5:
print("1 ile 25 arasında bir sayı tahmin et:")

tahmin = int(input())
tahmin_hakki += 1

if tahmin < sayi:
print("Tahminin çok küçük 📉")
elif tahmin > sayi:
print("Tahminin çok büyük 📈")

if tahmin == sayi:
break

Programı tekrar python tahmin.py komutuyla çalıştırdığımızda, artık kullanıcıya tahminlerinde daha fazla yönlendirme yapıldığını görebiliriz.
Örneğin, rastgele üretilen sayı 12 ise ve kullanıcı 18 girerse, program tahminin çok yüksek olduğunu söyleyecek. Böylece kullanıcı bir sonraki tahminini buna göre ayarlayabilecek.

Elbette bu kod daha da geliştirilebilir.
Örneğin, kullanıcı tam sayı dışında bir şey girerse hata almamak için hata yakalama (error handling) eklenebilir.

Ama bu basit örnek, bir while döngüsünün kısa bir komut satırı programında nasıl çalıştığını göstermesi açısından yeterlidir.

Sonuç

Bu derste Python’da while döngülerinin nasıl çalıştığını ve nasıl kurulacağını öğrendik.
While döngüleri, koşul True olduğu sürece kod bloğunu tekrar tekrar çalıştırmaya devam eder.
Koşul False olduğunda ise döngü sona erer.