Lesson 3
Koşullar: eğer-o-else
1. Sözdizimi
İlk dersteki tüm programlar sıralı olarak satırdan sonra yürütülmüştür. Hiçbir satır atlanamaz.
Şu sorunu ele alalım: verilen tamsayı X için mutlak değerini belirleyin. Eğer X> 0 ise, program X değerini yazmalıdır, aksi takdirde -X yazmalıdır. Bu davranış sıralı program kullanılarak ulaşılamıyor. Program şartlı olarak bir sonraki adımı seçmelidir. Koşullar şu şekilde yardımcı oluyor:
x = int(input()) if x > 0: print(x) else: print(-x)
Bu program bir koşullu deyimi kullanır if
. Sonra if
bir koşul koymak (x > 0)
iki nokta üst üste takip. Bundan sonra, yalnızca durum doğruysa (yani True
değerlendirilirse) yürütülecek bir talimatlar bloğu koyarız. Bu bloğu else
, harf, kolon ve yalnızca koşul yanlışsa (yani False
değerlendirilirse) çalıştırılacak olan bir başka talimat bloğu takip edebilir. Yukarıdaki durum, koşul yanlış, yani 'else' bloğu yürütülür. Her blok boşluklar kullanılarak girintili olmalıdır.
Özetle, Python'daki koşullu deyim aşağıdaki sözdizimine sahiptir:
if condition : true-block several instructions that are executed if the condition evaluates to True else: false-block several instructions that are executed if the condition evaluates to False
'Yanlış' bloğuna sahip else
anahtar kelime, koşul yanlışsa hiçbir şey yapılmaması durumunda ihmal edilebilir. Örneğin, x
değişkenini mutlak değeriyle şu şekilde değiştirebiliriz:
x = int(input()) if x < 0: x = -x print(x)
Bu örnekte, x
değişkeni sadece x < 0
ise -x
olarak atanır. Tersine, her defasında print(x)
yürütülür, çünkü girintisiz değildir, dolayısıyla 'gerçek' bloğa ait değildir.
Girinti, kod bloklarını ayırmak için Python'da genel bir yoldur. Aynı blok içindeki tüm talimatlar aynı şekilde girilmelidir, yani satırın başında aynı sayıda alana sahip olmalıdır. Girinti için 4 boşluk kullanılması önerilir.
Girinti, Python'u diğer dillerden farklı kılan şeydir, ki burada kaşlı ayraçlar {
ve }
blokları oluşturmak için kullanılır.
Bu arada, Python'da mutlak değer için bir yerleşik işlev var:
x = int(input()) print(abs(x))
2. İç içe koşullar
Herhangi bir Python komutu, başka bir koşullu ifade de dahil olmak üzere, 'gerçek' bloklara ve 'false' bloğuna yerleştirilebilir. Bu şekilde iç içe koşullara geçiyoruz. İç koşulların blokları, iki kez daha fazla boşluk (örneğin 8 boşluk) kullanılarak girintilidir. Bir örnek görelim. Düzlemdeki noktanın koordinatları verildiğinde, çeyreğini yazdırın.
x = int(input()) y = int(input()) if x > 0: if y > 0: # x 0'dan büyük, y 0'dan büyüktür print("Quadrant I") else: # x 0'dan büyük, y 0'dan küçük veya eşittir print("Quadrant IV") else: if y > 0: # x 0'dan küçük veya eşittir, y 0'dan büyüktür print("Quadrant II") else: # x 0'dan küçük veya eşittir, y 0'dan küçük veya eşittir print("Quadrant III")
Bu örnekte yorumları kullanacağız: Program yürütme üzerinde etkisi olmayan açıklayıcı metin. Bu metin hash #
ile başlar ve çizginin sonuna kadar sürer.
3. Karşılaştırma operatörleri
Genellikle, aşağıdaki işleçlerden biri veya daha fazlası if
aşağıdaki koşullar geçerlidir:
-
<
- az - Sol taraf sağdan daha azsa durum doğrudur.
-
>
- büyük - Sol taraf sağdan büyükse durum doğrudur.
-
<=
- daha az veya eşit.
-
>=
- daha büyük veya eşit.
-
==
- eşit.
-
!=
- eşit değil.
Örneğin durum x * x < 1000
anlamına gelen “ifadesinin değeri x * x
en az 1000 olan” ve durum 2 * x != y
değişken bölgesinin iki değeri”terimi x
değerine eşit değildir Değişken y
”.
Python'daki karşılaştırma operatörleri aşağıdaki gibi birlikte gruplandırılabilir: a == b == c
veya x <= y >= 10
. Programlama dilleri arasında nadir bir şey.
4. Boole nesneleri ve mantıksal operatörler
2 + 5
gibi +
operatörünü kullanarak iki tamsayı nesneyi topladığımızda, yeni bir nesne alırız: 7
. Aynı şekilde, <
operatörünü 2 < 5
gibi kullanarak iki tam sayıyı karşılaştırdığımızda, yeni bir nesne alırız: True
.
print(2 < 5) print(2 > 5)
True
ve False
nesneler, bool
adı verilen özel bir türe sahiptir. Her tür isim, bu türdeki nesnelere dökülmek için kullanılabileceği için, bu dökümün sayılara ne verdiğini görelim:print(bool(-10)) # Doğru print(bool(0)) # Yanlış - sıfır tek yanlış sayıdır print(bool(10)) # Doğru print(bool('')) # Yanlış - boş dize tek yanlış dizedir print(bool('abc')) # Doğru
Bazen birkaç koşulu bir kerede kontrol etmeniz gerekir. Örneğin, n
sayısının 2 ile bölünebileceğini kontrol edebilirsiniz n % 2 == 0
koşulunu ( n
, 2
bölerek kalan 0
değerini verir). İki sayının n
ve m
2'ye bölünebildiğini kontrol etmeniz gerekiyorsa, n % 2 == 0
ve m % 2 == 0
öğelerini de kontrol etmelisiniz. Bunu yapmak için, bunları Operatör kullanarak katılmak and
: (mantıksal AND) n % 2 == 0 and m % 2 == 0
.
Python mantıklı AND, mantıksal OR ve olumsuzlama vardır.
Operatör and
değerlendirmesi yapan bir ikili operatörüdür True
ve sol taraftaki ve sağ taraftaki her ikisi yalnızca eğer True
.
Operatör or
değerlendirmesi yapan bir ikili operatörüdür True
yanlarından en az birinin ise True
.
Operatör not
bazı değeri ardından ediyor, bir tekli olumsuzluk olduğunu. Bu değer False
ve tersi True
değerlendirilir.
İki sayının en az birinin 0 ile bittiğini kontrol edelim:
a = int(input()) b = int(input()) if a % 10 == 0 or b % 10 == 0: print('YES') else: print('NO')
Numarası o kontrol edelim a
pozitiftir ve sayı b
negatif olmayan geçerli:
if a > 0 and not (b < 0):
not (b < 0)
yerine yazabiliriz (b >= 0)
.
5. 'elif' sözcüğü
Koşullu operatörü kullanarak ayrı ayrı anlatmak için ikiden fazla seçeneğiniz if... elif... else
ifadesini kullanabilirsiniz.
Yukarıdaki örnekte, düzlemdeki nokta (x, y) ve yukarıdan gelen çeyrekler ile örneği yeniden yazarak nasıl çalıştığını gösterelim:
x = int(input()) y = int(input()) if x > 0 and y > 0: print("Quadrant I") elif x > 0 and y < 0: print("Quadrant IV") elif y > 0: print("Quadrant II") else: print("Quadrant III")
Bu durumda, ilk gerçek koşul bulunana kadar if
ve elif
koşullar birbiri ardına kontrol edilir. O zaman bu koşul için sadece gerçek blok yürütülür. Eğer tüm koşullar yanlış ise, mevcut ise 'else' bloğu yürütülür.