Python'da if (eğer), elif ve else Fonksiyonları | Ders 4

in utopian-io •  7 years ago  (edited)

python-logo.png

Ne Öğreneceğiz

  • Python'da Koşul Durumları
    • if
    • elif
    • else
  • Random modülü
  • abs() fonksiyonu

Gereksinimler

Zorluk Seviyesi

  • Orta

Eğitim İçeriği

Arkadaşlar temel kavramları ve input kullanıcıdan girdi almayı öğrendikten sonra koşul durumlarına geçiyoruz. İngilizce anlamından da bildiğiniz gibi if eğer koşulunu belirtmektedir. Diğer programlama dillerinde olduğu gibi Python'da da bu durum geçerlidir.
if EĞER koşulunu oluşturmaktadır. Bir de else vardır, if'in zıttı tüm durumları temsil eder diyebiliriz. Eğer o değilse budur şeklinde düşünebilirsiniz.

Bir örnekle başlayalım, önce bir veri girilmesini isteyelim kullanıcıdan sonra bunun 5'den büyük olup olmadığına bakalım, buna göre olumlu veya olumsuz diye çıktı versin programımız:
sayi1 = int(input("Bir rakam giriniz: "))
if sayi1 > 5 :
print ("Olumlu")
else
print ("olumsuz")

Gördüğünüz gibi programı yazıp çalıştırınca ve 1 değerini girince "olumsuz" sonucunu verdi:

if ve else kullanımı genel olarak bu şekildedir. Bir de elif vardır, bu da bir diğer koşulu belirtmek için kullanılır.
Mesela, bir sayının 10'dan büyük ve 20'den küçük olup olmadığını kontrol edeceğiz, şöyle yazabiliriz:
sayi = int(input("Bir sayı girin: "))
if sayi > 10 :
print("Olumlu")
elif sayi < 20 :
print ("Olumlu")
else
print ("Olumsuz")

Baktığımız zaman olumlu sonucu verdi, fakat neye göre ? Yani burada mantıksal bir hata var, bunu göstermek istedim:

Şöyle bir hata var,

  • Bizim 1. koşulumuz sayının 10'dan büyük olması
    1. koşulumuz sayının 20'den küçük olması

5 Sayısı bu durumda 1. koşula göre "olumsuz" olması gerekirken 2. koşula göre "olumlu" dur. Arkadaşlar burada size anlatmak istediğim durum if ve else ile ilgili değil aslında, değişkenlerle ilgili bir durum. Şöyle ki programlama dillerinde bu tür durumlarda en son verilen komut geçerli olur. Yani bizim ekrana yazılacak olumlu veya olumsuz yazısı en son ki koşulda ne ise odur. Son satıra baktığımızda else var, herhangi bir karşıt durum yok koşullarımıza baktığımızda ,
birinci koşulumuz 10'dan büyük, ikinci koşulumuz 20'den küçük, yani bunun aksi bir sayı yoktur doğada :) bu yüzden bir önceki satıra bakıyoruz, 20'den küçük olma koşulu var ve bu koşulun sonucu olumlu . İşte bu yüzden de programımız sonucu olumlu olarak yazdı.

Peki girilen sayının 10 ile 20 arasında olması durumunu nasıl kontrol edeceğiz ?
Bunun için yine yardımcı komutlarımız var if ile kullanılabilen.
Bunlar;

  • or (yada)
  • and (ve)
    or ve and i if ile birlikte kullanıp daha farklı(çoklu) koşullar sağlayabiliriz. Örneğimizi burada yapalım:
    sayi = int(input("Bir sayı girin: "))
    if sayi > 10 and sayi < 20 :
    print ("Olumlu")
    else
    print ("Olumsuz")

Gördüğünüz gibi programımız şimdi doğru çalıştı;

Yeri gelmişken if ile birlikte kullandığımız operatörlerden ve kullanış biçimlerinden de bahsedelim arkadaşlar. Yukarıda ki örneklerde büyüktür (>) ve küçüktür (<) işaretlerini kullandık, bunlar gibi şu operatörleri de if ve elif komutları ile kullanabiliyoruz;

  • <= (küçük eşittir)
  • >= (büyük eşittir)
  • == (eşittir)
  • != (eşit değildir)

Gelin daha farklı bir örnek hatta bir oyun yapalım;
Şimdi bilgisayarımızdan 1 ile 100 arasında random bir sayı belirlemesini isteyelim, sonra kullanıcıdan da bir sayı girmesini isteyelim, eğer kullanıcının girdiği sayı bilgisayarın random olarak belirlediği sayıya %10'dan yakınsa, kullanıcının kazandığı değilse kaybettiği bir şans oyunu olsun.
Karışık gibi gelebilir size fakat adım adım programımızı yazınca gayet basit olduğunu göreceksiniz;

ÖNEMLİ BİLGİ: Arkadaşlar random sayı belirleme ileri ki konuların içerisinde işleyeceğimiz bir özellik fakat örneğimizde kullanmak için işimize yarayacak kadarını sadece gösterelim. Python'da random modülünü kullanmak için programınıza öncelikle import etmeniz gerekmektedir. Bunun için satır başına import random yazıyoruz ve random modülünü import ediyoruz. Aksi taktirde yazacağınız random komutları çalışmayacaktır.

Daha sonra sayi1 değişkenimize 1 ile 100 arasında bir random sayı atayalım. Bunu randint komutu ile yapacağız, şu şekilde:
sayi1=random.randint(1,100)
Öncelikle kodumuzu deneyelim, bakalım bize 1 ile 100 arasında bir sayı veriyormu, bunun için
print(sayi1) yazmamız yeterli bildiğiniz gibi:

Gördüğünüz gibi 32 sayısını çevirdi bize, random ile ilgili bir çok özellik var fakat konumuz bu olmadığı için devam ediyoruz, bu kadarı yeter de artar bize.
Şimdi kullanıcıdan bir sayı girmesini isteyelim, şu şekilde yapalım:
sayi2=int(input("Lütfen bir sayı girin: "))
Daha sonra kullanıcının girdiği sayı ile random sayının arasındaki farkın yüzdesine bakacağız, bunuda matematiksel olarak mutlak değer içerisinde |(sayi1 - sayi2)/100| şeklinde yapabiliriz.
Burada da yeri gelmişken Mutlak değere alma işlemini belirtelim hemen, Python'da abs() fonksiyonu mutlak değer fonksiyonuna eşdeğerdir.
Örneğin: abs(-6)=6'dır.
Programımıza devam edecek olursak, yukarıda ki yüzde bulma işlemi için sayi3 değişkeni atayalım;
sayi3=(sayi1-sayi2)/100
Programımızın şuan ki hali:
import random
sayi1 = random.randint(1, 100)
sayi2=int(input("Lütfen bir sayı girin: "))
sayi3=abs((sayi1-sayi2)/100)
print(sayi3)


Gördüğünüz gibi programı çalıştırıp 60 sayısını girdim ve işlemleri yapıp 0,23 olarak sonuç verdi bana, bu ondalık dilimde %23'e karşılık geliyor. Oyunumuzun amacı neydi, arada ki fark yüzdesel olarak 10'dan küçük olursa eğer kazanacaktık, öyleyse son aşama yani sonucu if komutu ile değerlendirelim, hatta şöyle birşey de yapalım, bu ondalık sayıyı de 100 ile çarpalım bir tam sayıya dönüştürüp o şekilde devam edelim.
sayi4=sayi3x100
if sayi4 <= 10:
print("Sonuç: ",sayi4,"Kazandınız")
else:
print("Sonuç: ",sayi4,"kaybettiniz")

Şimdi aradaki gereksiz printleri kaldıralım ve programımızı başlatalım.


import random
sayi1 = random.randint(1, 100)
sayi2=int(input("Lütfen bir sayı girin: "))
sayi3=abs((sayi1-sayi2)/100)
sayi4 = sayi3*100
if sayi4 <= 10:
print("Sonuç: ",sayi4,"Kazandınız")
else:
print("Sonuç: ",sayi4,"kaybettiniz")

Şimdi bir de basit bir =='li örnek yazıp dersi bitirelim. Örneğin basit bir admin giriş uygulaması olsun belirlenen username ve password ile kullanıcının girdiği değerler eşleşirse başarılı olsun.
username = "cryptoadamc"
sifre = "123456789"
u1 = input("Kullanıcı Adınız: ")
s1 = input("Şifreniz :")
if u1 == username and s1 == sifre :
print("Giriş Başarılı")
else:
print("Başarısız Deneme")

Doğru girdiğimizde:

Gördüğünüz gibi işlemlerimiz başarılı bir şekilde gerçekleşiyor, bu dersimizi burada noktalıyoruz. Bol bol tekrar edip kendi uygulamalarınızı yazmayı ihmal etmeyin.
Selametle..



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @deathwing, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Hey @cryptoadamc I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x