Ya kanki, sürekli el ile çoklu inputlar falan girmekten sıkılmadın mı? Bana sorarsan açıkcası ben çok sıkıldım. Bu yüzden döngülere geçiyoruz.

Tekrarlanan işlemler: for — Bir koleksiyon üzerinde ilerler; while — Koşul doğru kaldıkça tekrarlar; break / continue — Döngüyü bitirir veya adımı atlar

Görsel not: Tekrarlanan işlemler

For Döngüsü

For Döngüsü Syntax’ı

for DEĞİŞKEN ADI in LİSTE ADI:
  YAPILACAK İŞLEM BLOKU

Hadi bi’ deney yapalım senle,

Deney 1

sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for item in sayilar:
  print(item)
output:
1
2
3
4
5
6
7
8
9

Deney 2

isimler = ["Oğuz", "Ertuğrul", "Furkan"]
for item in isimler:
  print(f"Selam, benim adım {item}")
output:
Selam, benim adım Oğuz
Selam, benim adım Ertuğrul
Selam, benim adım Furkan

Deney 3

isim = "Oğuz"
for item in isim:
  print(item)
output:
O
ğ
u
z

Deney 4

tuple = (1, 2, 3, 4)
for x in tuple:
  print(x)
output:
1
2
3
4

Deney 5

tuple = [(1, 3), (3, 7), (2, 4)]
for a, b in tuple:
  print(a, b)
output:
1 3
3 7
2 4

Deney 6

dic = {"key1":1, "key2":2, "key3":3}
for item in dic:
  print(item)outuput:
key1
key2
key3

Yukarıda yaptığıım deney de item değişkeni keylere eşit oldu. Şimdi alt taraftaki deneyde bi’şey yapcam izle,

Deney 7

dic = {"key1":1, "key2":2, "key3":3}
for key, value in dic.items():
  print(key, value)
output:
key1 1
key2 2
key3 3

Yukarıda gördüğün gibi for dögüsünde kullandığım items() metotu, dictionary’deki itemleri listeledi. Keylere tanımlamış olduğum değerleri keylerle birlikte listeledim.

While Döngüleri

While Döngüsü Syntax’ı

while KOŞUL:
  KOD BLOKU

Deney 1

x = 0 #x'in başlangıç değeri
while x < 10: #x, 10'den küçük mü kanki? 
  print(x)
  x += 1
output:
0
1
2
3
4
5
6
7
8
9

Deney 2

name = "" #False
while not name.strip(): #strip() metotu ile boşlukları engellendim.
 name = input("İsminizi giriniz: ")
print(f"Hoş geldin {name}") 
output:
İsminizi giriniz:

Break ve Continue

Bunlar for while gibi dögülerde kullanılırlar.

Break

Dögüyü sonlandırır, devam ettirmez.

Deney

name = "Oğuz"
for item in name:
  if item == "u":
    break
  print(item)  
output:
O
ğ

Yukarıda yapmış olduğum deneyde for döngüsü içine if bloğu ekleyerek item değişkeni, döngü sırasında “u” harfine geldiğinde break komutuyla döngünün sonlanmasını sağladım.

Continue

Continue, döngüyü tamamen durdurmaz sadece şartta belirtilen döngüyü es geçer ve döngüyü devam ettirir.

Deney 1

name = "Oğuz"
for item in name:
  if item == "u":
    continue
  print(item)  
output:
O
ğ
z

Get Mustafa Oğuz BARAN’s stories in your inbox

Toplama Deneyi

x = 1
result = 0
while x <= 9:
  result += x
  print(result)
  x += 1
output:
1
3
6
10
15
21
28
36
45

Döngü Metotları

range() Metotu

Belirlenen parametreyi 0'dan başlatır, parametredeki değerin bir öncekine kadar gider.

Deney 1

for item in range(10):
  print(item)
output:
0
1
2
3
4
5
6
7
8
9

Deney 2

for item in range(10, 20):
  print(item)
output:
10
11
12
13
14
15
16
17
18
19

Yukarıda yapmış olduğum deneyde, range metotu içerisine yazdığım 10 => 10 ile başla, 20 => 20'ye kadar git.

Deney 3

for item in range(10, 20, 2):
  print(item)
output:
10
12
14
16
18

Yine yukarıda yapmış olduğum deneyde range metotu içerisine yazdığım 2=> 2'şer 2'şer git demek.

enumerate() Metotu

enumerate() metotu, değişkenin değerini index- value şeklinde oluşturulmasını sağlar.

Deney

isim = "Oğuz"
for index, value in enumerate(isim):
  print(f"İndex Değeri: {index} Değer: {value}")
output:
İndex Değeri: 0 Değer: O
İndex Değeri: 1 Değer: ğ
İndex Değeri: 2 Değer: u
İndex Değeri: 3 Değer: z

zip() Metotu

zip() metotu, eşleştirme yapmanı sağlar.

Deney

list1 = [1, 2, 3, 4]
list2 = ["a", "b", "c", "d"]
for val1, val2 in list(zip(list1, list2)):
  print(f"No: {val1} Değer: {val2}")
output:
No: 1 Değer: a
No: 2 Değer: b
No: 3 Değer: c
No: 4 Değer: d

List Comprehensions

Bu da for ile range() methotunun kullanımının başka bir yolu. Hadi, deneylerle daha iyi anlayacaksın.

Deney 1

sayilar = [x for x in range(5)]
print(x)
output:
[0, 1, 2, 3, 4]

Deney 2

sayilar = []
for x in range(5):
  sayilar.append(x)
print(sayilar)
output:
[0, 1, 2, 3, 4]

Deney 3

sayilar = [x**2 for x in range(5)]
print(sayilar)
output:
[0, 1, 4, 9, 16]

Deney 4

sayilar = [x**2 for x in range(5) if x % 2 == 1]
print(sayilar)
output:
[1, 9]

Deney 5

dogumYili = [1955, 1977, 2001]
yas = [2021-dogumYili for dogumYili in dogumYili]
print(yas)
output:
[66, 44, 20]

Deney 6.a

result = []
for x in range(3):
  for y in range(3):
    result.append((x, y))
print(result)
output:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

Ya da

Deney 6.b

sayilar = [(x, y) for x in range(3) for y in range(3)]
print(sayilar)
output:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

Evet, deneylerimizle birlikte Python dilinde Döngüler bu kadardı. Bug’sız günler dilerim.

print(“İşleyen kod bug tutmaz.”)

-Anonim