Odak modu
for
for
döngüsünü işlerken for
<değişken>
in <obje>
yapısında, her iterasyonda değişken
in tek tek obje
nin elemanlarına eşit olduğunu konuşmuştuk.list
, tuple
, dictionary
non-scalar veri tiplerini gördük ve bunların hepsinin içsel bir yapısı var, şimdi bunların elemanlarında for
kullanarak iterasyon yapmaya bakalım.notlar = [90,72,81,77]
for e in notlar:
print(e)
90 72 81 77
t = 0
for e in notlar:
t += e
ortalama = t / len(notlar)
print(ortalama)
80.0
e
'nin özel bir anlamı yok, sadece döngünün içinde onu kullanırken o adla referans veriyorum, adı penguen
de olabilirdi.t = 0
for penguen in notlar:
t += penguen
ortalama = t / len(notlar)
print("Ortalama:",ortalama)
Ortalama: 80.0
for e in notlar
diyince ilk iterasyonda e
nin değeri 90, ikincisinde 72... olarak devam etti.range()
ile indexlerde iterasyon yapıp indexing ile değerlerine de ulaşabilirdim. (Range belirli bir listenin indexlerinde iterasyon yapmamı sağlamıyor, range(len(notlar)) diyince bize 0,1,2.. len(notlar)-1
sayılarını verecek, bunlar da listenin indexleriyle örtüşüyor, yoksa range()
index verir diye bir şey yok.)for i in range(4):
print("Iteration: ", i)
Iteration: 0
Iteration: 1
Iteration: 2
Iteration: 3
t = 0
for i in range(len(notlar)):
t += notlar[i]
ortalama = t / len(notlar)
print("Ortalama:",ortalama)
Ortalama: 80.0
notlar
[90, 72, 81, 77]
for e in notlar:
print(e)
90 72 81 77
e
sadece notlar
ın içindeki değerler,e
'yi değiştirmek listenin elemanlarını değiştirmez!for e in notlar:
print(e)
e = e + 10
print(e)
print(notlar)
print("--------------")
print(notlar)
90
100
[90, 72, 81, 77]
--------------
72
82
[90, 72, 81, 77]
--------------
81
91
[90, 72, 81, 77]
--------------
77
87
[90, 72, 81, 77]
--------------
[90, 72, 81, 77]
for i in range(len(notlar)):
notlar[i] += 5
notlar
[95, 77, 86, 82]
continue
mantığının alıştırmasını yapmış olalım. Diyelim ki öğretmen 2. öğrencinin kağıdını doğru okumuş, 2. öğrenci (index 1'deki) hariç hepsinin değerini 5 arttıracak:notlar = [90,72,81,77]
for i in range(len(notlar)):
if i == 1:
continue
notlar[i] += 5
print(notlar)
[95, 72, 86, 82]
break
egzersizi yapalım.break
ile sağlayacağım.x = int(input("Hangi sayıyı kontrol edeyim?:"))
l = [2,3,40,100,10,1]
for e in l:
print(e) # iterasyon break ile çıkmış mı görelim mi diye
if e == x:
print("Buldum!!")
break
Hangi sayıyı kontrol edeyim?:100
2
3
40
100
Buldum!!
t = (1,2,3,4)
for e in t:
print(e)
1 2 3 4
toplam = 0
for e in t:
toplam += e
print(toplam)
10
for i in range(len(t)):
print(t[i])
1 2 3 4
for i in range(len(t)):
t[i] += 2
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-37-51c8ededb856> in <module>
1 for i in range(len(t)):
----> 2 t[i] += 2
TypeError: 'tuple' object does not support item assignment
key
'lerde iterasyon yapıyor. Zaten index mantığı olmadığı için range() ile yapmak çoğu zaman karşımıza çıkmaz.d = {"student_1": [90,89], "student_2": [80,83], "student_3": [72,71]}
for k in d:
print(k)
student_1
student_2
student_3
for k in d:
v = d[k]
print(v)
[90, 89]
[80, 83]
[72, 71]
for
<değişken>
in <obje>
yapısında <değişken>
int vs gibi şeyler değil liste gibi yapılar da olabilir iterasyon içerisinde, burada da öyle oldu.d = {"student_1": 90, "student_2": 80, "student_3": 72}
for v in d.values():
print(v)
90 80 72
d = {"student_1": [90,89], "student_2": [80,83], "student_3": [72,71]}
for v in d.values():
print(v)
[90, 89]
[80, 83]
[72, 71]
v
, her iterasyonda int .
d = {"student_1": 90, "student_2": 80, "student_3": 72}
for k in d:
value = d[k]
if value > 85:
print(k)
student_1
key
hem de value
'larda iterasyon yapmak için:for k,v in d.items():
print("key değeri:", k, "value değeri:", v)
key değeri: student_1 value değeri: 90
key değeri: student_2 value değeri: 80
key değeri: student_3 value değeri: 72
Yazılım Kariyerinde İlerlemeni Hızlandıracak Programlar
Patika+ programlarımız ile 4-8 aylık yoğun yazılım kamplarına katıl, temel bilgilerden başlayarak kapsamlı bilgiler edin, yazılım kariyerine başla!
Yorum yapabilmek için derse kayıt olmalısın!