Python'da Bayraklarla Çalışma
Bayrak - yalnızca iki değer alabilen
özel bir değişkendir:
True veya False. Bayraklar
kullanarak, belirli bir şeyin yokluğunu
kontrol eden problemleri çözebilirsiniz:
örneğin, bir listede belirli bir değere
sahip bir öğe olmadığını kontrol edebilirsiniz.
Şu problemi çözelim: bir sayı listesi verildi,
içindeki tüm öğelerin pozitif olup olmadığını
kontrol etmemiz gerekiyor. Bunun için, döngü
başlamadan önce doğru flag adında özel
bir değişken tanımlayalım. Döngüde negatif
bir sayıyla karşılaşıldığında, değerini
False olarak değiştirelim. Kontrolün
sonucunu öğrenmek için, döngüden sonra
flag değişkenini konsola yazdıralım:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # tüm sayılar pozitif olduğu için True yazdırır
Bayrak değişkeni için, belirlenen koşulu
yansıtan bir isim vermek iyi bir uygulamadır.
flag ismini isAllPositive olarak
değiştirelim. Daha net görmek için listedeki
bir sayıyı negatif yapalım:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # negatif bir sayı olduğu için False yazdırır
Eğer taranan listede çok sayıda değer varsa
ve ilk negatif sayı bulunduktan sonra döngüyü
durdurmak gerekiyorsa, break komutu
kullanılmalıdır:
for el in lst:
if el < 0:
isAllPositive = False
break
Bayraklarla çalışırken, döngünün sonucunu
öğrenmek için bayrağın değerini değil,
ek bir if kullanarak özel bir mesaj
yazdırabilirsiniz.
Bir önceki örneği tekrar yazalım. Eğer tüm
öğeler pozitifse, '+++' yazdırılsın,
değilse '---' yazdırılsın:
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # '---' yazdırır
Bir liste verildi. Tüm öğelerinin pozitif sayılar olup olmadığını kontrol edin.
Bir tam sayı verildi. Asal sayı olup olmadığını kontrol edin, yani yalnızca bire ve kendisine bölünüp bölünmediğini.