- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md. - temeller/: tek konulu 12 başlangıç programı. - web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE önizlemesi 8080 verir), yoksa eski sabit port. - README: öğrenme bölümü, Online IDE bağlantısı.
3.2 KiB
baslik, bolum, ozet
| baslik | bolum | ozet |
|---|---|---|
| dongu ... icinde ve aralıklar | Akış denetimi | Bir listenin, metnin ya da sayı aralığının her öğesi için tekrar etmek |
Elinde bir şehir listesi var ve her birini yazdırmak istiyorsun. dongu x icinde ... döngüsü bir topluluğun her öğesi için bloğunu bir kez çalıştırır; sayaç tutmana gerek kalmaz.
Liste üzerinde dönmek
Her turda sehir değişkeni sıradaki öğeyi alır.
sehirler = ["Ankara", "İzmir", "Trabzon", "Van"]
dongu sehir icinde sehirler:
yazdir(f"• {sehir}")
• Ankara
• İzmir
• Trabzon
• Van
Döngü değişkenine istediğin adı verebilirsin. Anlamlı bir ad seç: dongu ogrenci icinde ogrenciler.
Sayı aralığı: a..b
1..5 aralığı 1, 2, 3, 4, 5 demektir. Üst sınır dahildir.
dongu i icinde 1..5:
yazdir(f"{i} x 3 = {i * 3}")
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15
Sınırlar değişken ya da hesap olabilir.
n = 4
toplam = 0
dongu i icinde 1..n:
toplam += i * i
yazdir(f"1'den {n}'e kadar karelerin toplamı: {toplam}")
1'den 4'e kadar karelerin toplamı: 30
İndeksle dönmek
Sıra numarasına da ihtiyacın varsa 0..liste.uzunluk() - 1 aralığında dönersin.
kazananlar = ["Elif", "Mert", "Zeynep"]
dongu i icinde 0..kazananlar.uzunluk() - 1:
yazdir(f"{i + 1}. {kazananlar[i]}")
1. Elif
2. Mert
3. Zeynep
Metin üzerinde dönmek
Bir metin üzerinde dönünce her turda bir karakter gelir.
kelime = "Çalışkan öğrenciler"
unlu = 0
dongu harf icinde kelime.kucult():
eger "aeıioöuü".icerir(harf):
unlu += 1
yazdir(f"{unlu} ünlü harf var.")
7 ünlü harf var.
İç içe döngü
Dıştaki döngünün her turunda içteki döngü baştan sona çalışır. Çarpım tablosu buna klasik bir örnektir.
dongu satir icinde 1..4:
cizgi = ""
dongu sutun icinde 1..4:
cizgi += f"{satir * sutun:4}"
yazdir(cizgi)
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Dikkat: Aralık yalnız ileri sayar.
5..1boş bir aralıktır, döngü hiç çalışmaz. Geri saymak içinikenkullan.
dongu i icinde 5..1:
yazdir(i)
yazdir("Döngü hiç çalışmadı.")
Döngü hiç çalışmadı.
İpucu: Döngü değişkenini değiştirmek listeyi değiştirmez.
dongu x icinde l: x = x * 2yazıncalaynı kalır. Listeyi güncellemenin yolunu Liste işlemleri dersinde göreceksin.
Alıştırma
`notlar` listesindeki notların toplamını ve ortalamasını bul. Ortalamayı 1 basamakla `Toplam: 404, ortalama: 80.8` biçiminde yazdır.
%%%
notlar = [72, 95, 88, 61, 88]
toplam = 0
# buraya yaz
%%%
notlar = [72, 95, 88, 61, 88]
toplam = 0
dongu n icinde notlar:
toplam += n
ortalama = toplam / notlar.uzunluk()
yazdir(f"Toplam: {toplam}, ortalama: {ortalama:.1f}")
%%%
Toplam: 404, ortalama: 80.8
1'den 5'e kadar her `n` için `n` tane yıldızdan oluşan bir satır yazdır (bir merdiven). `"*".tekrarla(n)` işini görür.
%%%
# buraya yaz
%%%
dongu n icinde 1..5:
yazdir("*".tekrarla(n))
%%%
*
**
***
****
*****