Ne Öğreneceğiz
- Python'da Koşul Durumları
- if
- elif
- else
- Random modülü
- abs() fonksiyonu
Gereksinimler
- Python (github)
- Herhangi bir işletim sistemi
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ı
- 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
veand
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 print
leri 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
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @cryptoadamc I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit