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