Program akışını yönlendirmek ve tekrar eden işleri yürütmek
Program akışını koşullara göre yönlendiren yapılar: if, elif, else. Python’da koşulun çevresinde parantez, bloğun çevresinde süslü parantez yoktur; blok, satır sonundaki : ile açılır ve girintiyle belirlenir.
if YapısıKoşul doğruysa girintili blok çalışır, yanlışsa atlanır:
if + elseKoşul sağlanmadığında yapılacak işi else dalı belirtir:
elif KullanımıBirden fazla koşulu sırayla sınamak için elif kullanılır. Zincirde yalnızca ilk doğru dal çalışır; bu yüzden koşulların sırası önemlidir.
ifKoşulları kademeli kontrol etmek için iç içe yapı kullanılabilir.
İç içe if yerine koşullar and, or, not ile tek satırda birleştirilebilir; çoğu zaman daha okunurdur.
Tek bir değeri koşula göre seçmek için dört satırlık if/else yerine tek satırlık koşullu ifade kullanılabilir.
Geleneksel if/else
Ternary operatörü ile
> ile >= aynı değildir.if–elif zincirinde yalnızca ilk doğru dal çalışır. Geniş bir koşul, sonraki dalı erişilemez kılabilir.elif ile ayrı if’leri ayırın: Yalnızca bir durum seçilecekse elif; birden fazla koşul bağımsız olarak gerçekleşebilecekse ayrı if kullanın.and, or ve not birlikte kullanıldığında gerekirse parantez ekleyin.else dalını da test edin.Döngüler, belirli işlemleri tekrar etmek için kullanılır.
for: koleksiyon (liste, string vb.) veya sayı aralıkları üzerinde yineleme yapar.while: koşul doğru olduğu sürece çalışır.for DöngüsüYalnızca elemanın kendisine ihtiyacımız varsa ayrıca bir sıra numarası tutmayız; for her turda sıradaki değeri verir.
meyve değişkeni her turda listedeki sıradaki değeri alır; indeks tutmaya gerek yoktur.
range() FonksiyonuSayı aralıkları üretir:
Son sınır aralığa girmez. Örneğin 1’den 10’a kadar saymak için bitişi 11 seçeriz.
range() ÖrnekleriAdımın yönü başlangıçtan bitişe giden yönle uyuşmazsa aralık boş kalır; emin değilseniz list(range(...)) ile bakın.
forBir metni dolaşırken harf değişkeni karakterin konumunu değil, karakterin kendisini alır.
while DöngüsüTekrar sayısı baştan belli değilse while daha doğaldır: koşul True olduğu sürece tekrar eder.
whileBu örnekte sayaç 0’dan başlar, her turda 1 artar ve 5’e ulaştığında koşul yanlış olur. Artırma satırı olmasaydı döngü sonlanmazdı.
while yazarken üç soru sorun: Döngü başlarken koşuldaki değişkenlerin değeri ne? Her turda hangi değer değişiyor? Bu değişiklik döngüyü bitirecek koşulu gerçekten oluşturabilir mi?
Bu örneği yerel terminalde deneyin; input() kullanıcıdan yanıt bekler. q burada verinin bittiğini bildiren bir işaret değeridir.
Bu kodun durma koşulu yoktur. Çalıştırmadan önce döngüyü nasıl sonlandıracağınızı düşünün.
Akışın esnek yönetimi için üç anahtar kelime vardır:
break → içinde bulunduğu en yakın döngüden çıkarcontinue → o turun kalanını atlayıp sonraki tura geçerpass → hiçbir işlem yapmaz; yer tutucu olarak kullanılırbreak Örneğibreak döngüyü o anda bitirir; 3’ten sonrası hiç işlenmez.
continue Örneğicontinue yalnızca o turu atlar; döngü 4 ile devam eder.
pass ÖrneğiBoş bir blok söz dizimi hatasıdır; henüz yazılmamış gövdeyi pass ile doldururuz.
for-else YapısıDöngü break ile sonlanmazsa else bloğu çalışır; “aranan bulunamadı” durumlarını yazmak için kullanışlıdır.
Dış döngünün her turunda iç döngü baştan sona çalışır.
match / caseÇok dallı if/elif zincirleri yerine match ile desen eşleştirme yapılabilir; | ile birden çok değer aynı dala bağlanır, _ “diğer her şey” demektir.
Her hücre için önce çıktıyı tahmin edin, sonra çalıştırıp tahmininizi kontrol edin.
Robotik atölyesi 16 yaş altını kabul etmiyor. Diğer başvurularda yer yoksa bekleme listesi, yer varsa kayıt onayı veriliyor.
Koşulları yazın; yaş için 15–16, boş yer için 0–1 deneyin.
Çözüm
yas < 16 — “16 yaş altını kabul etmiyor” demek 16 yaşındaki başvurunun kabul edildiği anlamına gelir. yas <= 16 yazsaydık 16 yaşı da reddederdik; 15, 16 ve 17 değerlerini deneyerek farkı görebilirsiniz.bos_kontenjan == 0 — elif dalına yalnızca yaşı uygun olanlar gelir; orada tek soru kalır: boş yer var mı? Yoksa bekleme listesi, varsa kayıt tamamlanır.Yerel ortamınızda, input() kullanarak:
a harflerini karakterler üzerinde doğrudan dolaşarak sayın; ardından büyük A harfini de kapsayacak biçimde genişletin.Her soruda önce kendi cevabınızı seçin, sonra cevap anahtarındaki gerekçeleri okuyun; yanlış şıklar bu konuda gerçekten yapılan hatalardan seçildi.
BBBB ve KaldıKaldıAA[3, 4, 5, 6, 7][2, 3, 4, 5, 6][0, 1, 2, 3, 4, 5, 6][2, 3, 4, 5, 6, 7][2, 7]1 21 2 4 51 2 3 4 54 530 1 2 alt alta0 bir kez00 0 ve 1 00 0, 0 1, 1 0, 1 10 00 0, 0 2, 1 0, 1 2Kullanıcıdan alınan sayıları q girilene kadar toplayan, sonra toplam ile kaç sayı girildiğini Toplam: 42 (3 sayı) biçiminde yazdıran kodu yazın. Sayfada input() çalışmadığı için girişleri bir listeyle temsil edin.
if/elif/else zincirinde yalnız ilk doğru dal çalışır; sınır değerlerini (eşik ve iki yanı) sınayın.for elemanın kendisini verir; indeks tutmak gerekmez.range(a, b) a dâhil b hariç; üçüncü parametre adımdır.while koşul doğru kaldıkça döner; koşuldaki değeri değiştiren satır yoksa döngü bitmez.break döngüyü bitirir, continue turu atlar, pass yer tutar; for-else break olmadan biterse çalışır.break yalnız içteki döngüyü bitirir.match/case çok dallı eşleştirmeyi okunur yazar (Python ≥ 3.10).if/elif/else zincirinde sınır değerinin hangi dala düştüğünü belirler.range() ile istenen sayı aralığını üretir ve bitiş değerinin dışarıda kaldığını gösterir.while döngüsünün sonlanma koşulunu açıklar ve sonsuz döngüyü tanır.break ile continue arasındaki farkı iç içe döngü örneğinde gösterir.İleri Programlama – OMÜ | 🏠