If deyimi
Her zaman olduğu gibi, yeni bir bölüme başlarken bir ısınma alıştırmasının iyi olduğunu düşünüyoruz. Bu yüzden bir tamsayının mutlak değerini hesaplamak için kısa bir program ile başlayalım:
n = int(input("Sayı? "))
if n < 0:
print("Sayının mutlak değeri: ", -n)
else:
print("Sayının mutlak değeri: ", n)
Bu programı iki kez çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Sayı? -34
Sayının mutlak değeri: 34
Sayı? 1
Sayının mutlak değeri: 1
Peki bilgisayar bu kod parçasını gördüğünde ne yapıyor? İlk önce kullanıcıdan “n = int(input("Sayı? "))
” ifadesi ile bir sayı ister. Sonra “if n < 0:
” satırını okur. Girilen sayı sıfırdan azsa Python ” print("Sayının mutlak değeri: ", -n)
” satırını çalıştırır. Aksi takdirde ” print("Sayının mutlak değeri: ", n)
” satırını çalıştırır. İki satır arasındaki farkı görebiliyorsunuz değil mi? Birinde -n
, diğerinde n
bastırılıyor.
Daha resmi bir şekilde anlatırsak Python, n<0 ifadesinin doğru veya yanlış olup olmadığına bakar. Bir if
deyimin ardından, ifade doğru olduğunda çalıştırılan girintili bir deyim bloğu gelir. İsteğe bağlı olarak, if
deyiminden sonra bir else
deyimi gelir ve başka bir girintili ifade bloğu verilir. İfade false ise, bu ikinci deyim bloğu çalıştırılır.
Bir ifadenin kullanabileceği birkaç farklı test bulunur. Aşağıda bu testlere ait bir tablo görüyorsunuz:
operatör | fonksiyon |
---|---|
< | daha az |
<= | küçük veya eşit |
> | büyük |
>= | büyük veya eşit |
== | eşit |
!= | eşit değil |
if
komutun bir diğer özelliği de elif
ifadedir. Orijinal if
ifadesi yanlışsa ancak başka bir durum doğru olabilirse elif
kullanılır. Ve eğer ne if
ne de elif
ifadeleri doğru değilse, o zaman else
bloğunda ne varsa gerçekleştirilir. Bir örneğe bakalım:
a = 0
while a < 10:
a = a + 1
if a > 5:
print(a, ">", 5)
elif a <= 3:
print(a, "<=", 3)
else:
print("İki test de doğru değildi")
ve çıktı:
1 <= 3
2 <= 3
3 <= 3
İki test de doğru değildi
İki test de doğru değildi
6 > 5
7 > 5
8 > 5
9 > 5
10 > 5
elif a <= 3
deyiminin yalnızca if
deyimi doğru olmadığında çalıştığına dikkat edin. Bir kodda birden fazla elif
ifadesi olabilir ve birden çok testin tek bir deyimde yapılmasına izin verir.
Örnekler
# Bu program == operatorünün kullanımını gösterir
# Rakamları kullanarak:
print(5 == 6)
# Değişkenleri kullanarak
x = 5
y = 8
print(x == y)
Çıktı:
False
False
high_low.py
# Yukarı/aşağı tahmin oyunu
# Burada tahmin edilecek sayının rastgele bir sayı olması daha iyi olurdu.
# Buna bir sonraki yazıda bakacağız
sayi = 7
tahmin = -1
print("Sayıyı tahmin et!")
while tahmin != sayi:
tahmin = int(input(": "))
if tahmin == number:
print("Bravo! Doğru tahmin!")
elif tahmin < sayi:
print("Yukarı...")
elif tahmin > sayi:
print("Aşağı...")
Örnek çalıştırma:
Sayıyı tahmin et!
: 2
Yukarı...
: 5
Yukarı...
: 10
Aşağı...
: 7
Bravo! Doğru tahmin!
even.py
# Bir sayı sorar
# Çift mi tek mi olduğunu yazdırır
number = float(input("Bir sayı söyle: "))
if number % 2 == 0:
print(int(number), " çift.")
elif number % 2 == 1:
print(int(number), " tek.")
else:
print(number, " değişik bir sayı.")
Örnek çalıştırmalar:
Bir sayı söyle: 3
3 tek.
Bir sayı söyle: 2
2 çift.
Bir sayı söyle: 3.4895
3.4895 değişik bir sayı.
average1.py
# 0 sayısı girilene kadar sayı sorar
# Girilen sayıların ortalamasını bastırır
count = 0
sum = 0.0
number = 1 # döngüden hemen çıkmamak için bir değer atıyoruz.
print("Döngüden çıkmak için 0 yazın")
while number != 0:
number = float(input("Bir sayı girin: "))
if number != 0:
count = count + 1
sum = sum + number
if number == 0:
print("Ortalama:", sum / count)
Örnek çalıştırmalar:
Döngüden çıkmak için 0 yazın
Bir sayı girin: 3
Bir sayı girin: 5
Bir sayı girin: 0
Ortalma: 4.0
Döngüden çıkmak için 0 yazın
Bir sayı girin: 1
Bir sayı girin: 4
Bir sayı girin: 3
Bir sayı girin: 0
Ortalama: 2.66666666667
average2.py
# İstenilen sayıda rakam ister ve bu sayıların ortalamasını bastırır
# Burada bir tamsayı ile girilen sayıların miktarını takip edeceğiz
# Kayan nokta sayılarını ise girdiğimiz sayılar için kullanacağız
sum = 0.0
print("Bu program bir kaç sayı soracak ve bunların ortalamasını alacak")
sayi_sayisi = int(input("Kaç sayının ortalamasını almak istersin?: "))
simdiki_sayi = 0
while simdiki_sayi < sayi_sayisi:
simdiki_sayi = simdiki_sayi + 1
print("Sayı sayısı:", simdiki_sayi)
sayi = float(input("Bir sayı girin: "))
toplam = sayi + toplam
print("Ortalama:", sum / count)
Örnek çalıştırmalar:
Bu program bir kaç sayı soracak ve bunların ortalamasını alacak
Kaç sayının ortalamasını almak istersin?: 2
Sayı sayısı: 1
Bir sayı girin: 3
Sayı sayısı: 2
Bir sayı girin: 5
Ortalama: 4.0
Bu program bir kaç sayı soracak ve bunların ortalamasını alacak
Kaç sayının ortalamasını almak istersin?: 3
Sayı sayısı: 1
Bir sayı girin: 1
Sayı sayısı: 2
Bir sayı girin: 4
Sayı sayısı: 3
Bir sayı girin: 3
Ortalama: 2.66666666667
Alıştırmalar
1:
Kullanıcıya adını soran bir program yazın. Sizin adınızı girerlerse “Bu güzel bir isim” deyin, “John Cleese” veya “Michael Palin” girerlelrse, onlara bu isimler ile ilgili ne düşündüğünüzü söyleyin. Diğer durumlarda ise onlara “Güzel bir adınız var” deyin.
2:
Aşağı/yukarı oyunu için yazdığımız kodu biraz değiştirin. Kullanıcının kaç kez yanlış numara girdiğini takip edin. 3 kereden fazla yanlış girerse, “Bu karmaşık olmalı.” yazdırın, aksi takdirde “İyi iş!” yazdırın.
3:
İki numara isteyen bir program yazın. Sayıların toplamı 100’den büyükse, “Bu büyük bir sayı” yazdırın.
Çözümler
1:
name = input('Adınızı girin: ')
if name == 'koddla':
print('Bu güzel bir isim.')
elif name == 'John Cleese':
print('... komik bir şeyler.')
elif name == 'Michael Palin':
print('... komik bir şeyler.')
else:
print('Güzel bir adınız var.')
2:
sayi = 7
tahmin = -1
deneme = 0
print("Tahmin et!")
while tahmin != sayi:
tahmin = int(input(": "))
deneme = deneme + 1
if tahmin == sayi:
print("Bravo! Doğru tahmin!")
elif tahmin < sayi:
print("Yukarı...")
elif tahmin > sayi:
print("Aşağı...")
if deneme > 3:
print("Bu karmaşık olmalı.")
else:
print("İyi iş!")
3:
sayi1 = float(input('Birinci sayı: ')) sayi2 = float(input('İkinci sayı: ')) if sayi1 + sayi2> 100: print('Bu büyük bir sayı.')