Döngüler, bir işlemi tekrar tekrar gerçekleştirmek için kullanılır. Python’da iki ana döngü türü vardır: while döngüsü ve for döngüsü.
While döngüsü, bir koşul doğru olduğu sürece çalışmaya devam eder. Döngünün koşulu doğru (True) oldukça, döngüdeki ifadeler tekrar tekrar çalışır.
i = 0
while i < 5:
print(i)
i += 1 # i değerini her seferinde 1 artırırBu örnekte, i değişkeni 5’ten küçük olduğu sürece döngü devam eder. Her döngüde i değeri 1 artırılır ve ekrana yazdırılır. Döngü, i 5'e eşit olduğunda sona erer.
Eğer döngü koşulu her zaman doğru olursa, döngü sonsuza kadar çalışır. Bu tür döngülere sonsuz döngü denir.
while True:
print("Bu döngü sonsuz olarak çalışır.")Bu tür bir döngüyü durdurmak için break anahtar kelimesi kullanılabilir. Örneğin, bir koşul sağlandığında döngüyü sonlandırmak için:
i = 0
while True:
print(i)
if i == 5:
break # i 5 olduğunda döngü sonlanır
i += 1Bir döngüde genellikle bir sayaç veya indeks kullanılır. Bu sayaç, döngünün her adımında artırılarak döngünün belirli bir noktada sonlanmasını sağlar.
i = 0
while i < 10:
print("i'nin değeri:", i)
i += 2 # Her adımda i'yi 2 artırırFor döngüsü, bir koleksiyonun (liste, dizi, string, vb.) elemanları üzerinde tekrarlı bir işlem yapar. Her iterasyonda koleksiyonun bir elemanını alır ve ilgili blokta kullanır.
isimler = ["Ahmet", "Mehmet", "Ali"]
for isim in isimler:
print(isim)Bu döngü, isimler listesindeki her bir öğeyi sırayla alır ve ekrana yazdırır.
range() fonksiyonu, belirli bir aralıktaki sayılar üzerinde döngü oluşturmak için kullanılır.
for i in range(5):
print(i)Bu örnekte, range(5) ifadesi 0'dan 4'e kadar olan sayıları üretir ve döngü bu sayılar üzerinde çalışır.
For döngüsü, sadece sayılar üzerinde değil, listeler ve string'ler üzerinde de çalışabilir.
kelime = "Python"
for harf in kelime:
print(harf)Bu döngü, kelime string'inin her bir harfi üzerinde çalışır ve sırayla her harfi ekrana yazdırır.
For döngüleri de iç içe kullanılabilir. İç içe for döngüleri genellikle iki boyutlu listeler (matrisler) gibi yapıların elemanlarını işlemek için kullanılır.
matris = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for satir in matris:
for eleman in satir:
print(eleman, end=" ")
print() # Her satırı yeni satıra yazdırırBu kod, 3x3 boyutunda bir matrisin her elemanını sırayla ekrana yazdırır.
break anahtar kelimesi döngüyü sonlandırırken, continue döngünün o adımını atlayıp bir sonraki adıma geçer.
- Break: Döngüyü anında sonlandırır.
- Continue: Döngünün o iterasyonunu atlar.
for i in range(10):
if i == 5:
break # i 5 olduğunda döngü sona erer
print(i)
for i in range(10):
if i == 5:
continue # i 5 olduğunda bu iterasyonu atlar
print(i)Döngülerdeki else ifadesi yalnızca döngü başarıyla tamamlanırsa çalışır. Else ifadesinin asıl kullanımı, öğeleri aramak içindir:
my_list = [1, 2, 3, 4, 5]
for i in my_list:
if i == 3:
print("Öğe bulundu!")
break
print(i)
else:
print("Öğe bulunamadı!")Bu kodda, i 3'e eşit olduğunda döngüden çıkmak için break kullanıyoruz. Bu, else ifadesinin atlanmasına neden olur. Denemek isterseniz, döngüde olmayan bir değeri arayarak koşulu değiştirebilirsiniz; bu, else ifadesinin çalışmasına yol açar.
Fonksiyonlar, belirli bir görevi yerine getirmek için yazdığınız kod bloklarıdır. Parametre alabilir, geri dönüş değeri verebilirler ve kodunuzu daha düzenli hale getirirler. Fonksiyonlar def anahtar kelimesiyle başlar, bir isimle tanımlanır ve ardından iki nokta (:) ile devam eder. Örneğin:
def bir_fonksiyon():
print("Bir fonksiyon oluşturdunuz!")Bu fonksiyon, sadece bir metin yazdırır. Bir fonksiyonu çağırmak için, fonksiyonun ismini ve ardından parantezleri kullanırız:
bir_fonksiyon()
# Çıktı: Bir fonksiyon oluşturdunuz!Bazen kodun yapısını oluştururken bir fonksiyonun içeriğini henüz doldurmak istemeyebilirsiniz. Bu durumda pass ifadesini kullanarak "boş" bir fonksiyon tanımlayabilirsiniz:
def bos_fonksiyon():
passpass, Python'a burada hiçbir şey yapmamasını söyleyen bir komuttur.
Fonksiyonlara bilgi geçmek için argümanlar kullanılır. Argümanlar, fonksiyon isminin ardından parantez içinde belirtilir:
def my_function(isim):
print(isim)
my_function("Emil")
my_function("Tobias")
my_function("Linus")Fonksiyonlar, varsayılan olarak doğru sayıda argümanla çağrılmalıdır:
def my_function(isim, yas):
print(isim + " " + yas)
my_function("Ahmet", "25")Fonksiyonlara parametre göndererek onlara dışarıdan veri sağlayabiliriz. Mesela iki sayıyı toplayan bir fonksiyon yazalım:
def topla(a, b):
return a + b
print(topla(1, 2)) # Çıktı: 3Fonksiyonlar her zaman bir değer döndürür; eğer bir değer dönmezse None döndürürler. Bu örnekte a + b sonucunu döndürmesini belirttik.
Fonksiyonları çağırırken argümanları isimlendirerek sırayı değiştirebilirsiniz:
def topla(a, b):
return a + b
print(topla(b=4, a=5)) # Çıktı: 9Eğer bir fonksiyon parametreleri için varsayılan değerler belirlenmişse, argümanları atlamanız mümkün olur. Örneğin:
print(topla()) # Çıktı: 3Bu durumda a ve b varsayılan olarak 1 ve 2 değerlerini alır.
Bir fonksiyonun tanımında yer alan değişkenlere parametre, fonksiyon çağrıldığında geçirilen değerlere ise argüman denir.
Fonksiyonların değişken sayıda parametre alabilmesi için *args ve **kwargs kullanılır:
def bircok_parametre(*args, **kwargs):
print(args)
print(kwargs)
bircok_parametre(1, 2, 3, isim="Ali", meslek="Yazılımcı")
# Çıktı:
# (1, 2, 3)
# {'isim': 'Ali', 'meslek': 'Yazılımcı'}Bu örnekte args bir demet (tuple), kwargs ise bir sözlük (dictionary) olarak kullanılır.