python dersleri

Python Koşul İfadeleri(if, elif, else)

Merhaba Arkadaşlar,
Mobilhanem.com da Python Dersleri serisinin bu dersinde Python Koşul İfadelerinin ne olduğunu ve Koşul ifadeleri ile ilgili uygulamalar yapmaya çalışacağım
Peki nedir bu Python da koşul ifadeleri ne işe yarar;

Koşul İfadeleri:

Python Koşul ifadeleri hemen bir örnekle açıklayalım örneğin sosyal hesabımıza girmeye çalıştığımız zaman bizden kullanıcı adı ve şifre bilgilerimizi girmemizi ister. Eğer kullanıcı adı ve şifre doğru ise giriş yapmamızı veya yanlış ise hesabımıza giriş yapamayız ancak doğru girdiğimiz zaman giriş yapabiliriz.
Başka bir örnek verelim bir ATM’den paraya çekmeye çalıştığımız zaman şifre bilgilerimiz doğru ise ancak o zaman işlemleri gerçekleştirebiliyoruz. İşte bu işlemleri Koşullu ifadeler sayesinde yapabiliyoruz ben de bu derste size Python koşul ifadeleri olan ; if, elif ve else ifadelerini anlatmaya çalışacağım. Bu deyimleri anlatmadan önce koşullu işleçlerin tablosunu gösterelim.

Koşul işleçleri

if Deyimi:

if deyiminin ingilizcedeki anlamı “eğer” demektir buradan da anlaşılacağı gibi bur da bir koşula bağlı durum belirtiyoruz genel kullanım şekli ise şu şekildedir.

if (koşul):

koşul sağlanıyorsa gerçekleşecek işlem

hemen ufak bir örnek ile başlayalım elimizde a ve b değişkenleri olmak üzere iki adet sayı var. Bunları bir birilerine göre karşılaştıralım.

if a==b:

Burada şunu belirttik eğer ; “a ile b sayıları birbirine eşitse…”

Burada a ile b’nin birbirine eşit olma koşulu var. O zaman burada bu koşul durumuna göre bir işlem
yapacağız. burada ==(çift eşittir) işleci tabloda gösterdiğimiz gibi birbirine eşit olup olmadığını  sorgulayan işleçtir.

Hemen kodumuza dönelim

a=3
b=3
if a==b:
print("a ile b birbirine eşittir")

Burada a ile b’nin birbirine eşit olma koşulunu sorguluyor eğer eşitse ekrana “a ile b eşittir ” çıktısını verecek aksi taktirde herhangi bir işlem gerçekleşmiyecektir.
Hemen kodumuzu çalıştıralım ve karşımıza şöyle bir hata gelecektir;

File “C:/Users/Cahit/Desktop/Mini/DD.py”, line 4
print(“a ile b birbirine eşittir”)
^
IndentationError: expected an indented block

4. satırda girinti hatası aldık peki bu girinti nedir niye girinti hatası verdi.
isterseniz aynı kodu C ile yazalım;

if (a==b)

{
  print("a ile b birbirine eşittir")
}

Gördüğünüz gibi ekrana yazı yazdırma işlemini gerçekleştiren print() fonksiyonu süslü parantezlerin içinde yazdık bunun sebebi print() fonksiyonun if koşul deyimine ait olduğunu eğer koşul sağlarsa süslü parantez içindeki işlemler gerçekleşecektir. Python da ise süslü parantez yerine girinti işlemi kullanılır.

Python da Girintileme İşlemleri:

Bu konuya şöyle bir şey göstererek anlatmak istiyorum.


Burada görüldüğü gibi bir dosyanın içindeki dosyalar biraz daha içeride, bu o dosyanın bir üst dosyaya ait olduğunu belirtiyor. Python da ki girintileme işlemi de bu şekildedir
Burada ekrana çıktı vermemizi sağlayan kod if koşuluna ait olduğunu belirtiyor. Ayrıca Python da girintinin olması Python kodlarını daha okunaklı kılıyor. Girinti işlemi için ise TAB tuşuna bir kez veya SPACE dört defa basmalısınız.

O zaman kodumuzu tekrar yazarsak

a=3
b=3
if a==b:
    print("a ile b birbirine eşittir")

Herhangi bir hata almadık. Detaylı bilgi buradan ulaşabilirsiniz. Python girintileme sistemini öğrendiğimize göre şimdi Python Koşul ifadeleri türlerine bakalım.

else Deyimi:

else deyimi if koşulunu sağlayan durumlar dışındaki kalan bütün durumları göstermek için kullanılır. Bu yüzden bir koşul belirtmiyoruz bu koşul ifadesinde.
Örnğin az önce yaptığımız uygulama koşul sağlanmıyorsa herhangi bir işlem gerçekleşmiyordu. Peki biz koşul sağlanmadığı durumlarda işlem gerçekleştirmeyi nasıl yapacağız tabi ki else deyimi ile gerçekleştireceğiz. Hemen yapalım.

a = 3
b = 3
if a==b:
    print("a ile b sayıları birbirine eşittir")
else:
    print("a ile b sayıları birbirine eşit değil")

veya şöyle bir örnek verelim elimizde bir parola var kullanıcı parolayı doğru girdiğinde sisteme giriş yapsın eğer yanlış girerse hata mesajını versin;

parolam = "python"

parola = input("Parolayı giriniz :")

if parola==parolam:
    print("Başarılı bir şekilde sisteme giriş yaptınız :)")

else:
    print("Parolayı yanlış girdiniz...")

elif Deyimi:

Bir durumun sağlanması birden fazla koşula bağlıysa elif deyimi kullanılır.

if(koşul):
işlemler

elif(koşul):
işlemler

elif(koşul):
işlemler
.
.
.

şeklinde kullanımı var hemen bir örnekle gösterlim.
Örneğin kullanıcıdan vize ve final sonuçlarını alalım ortalamayı hesaplayan sonra bu ortalamaya göre bir harf notu veren programı yazalım

"""Harf notu Hesaplama Programı"""

vize = int(input("Vize Notu :"))
final = int(input("Final Notu :"))

ortalama = (vize*0.4)+ (final*0.6) # vizenin %40 final %60 olarak alındı

if (ortalama>=85):
    print("Harf notunuz : AA0")

elif(ortalama>=70 and ortalama <85):
    print("Harf notunuz : BA")

elif(ortalama>=60 and ortalama <70):
    print("Harf notunuz : BB")

elif (ortalama >= 45 and ortalama < 60):
    print("Harf notunuz : CB")

elif(ortalama>=0 and ortalama <45):
    print("Harf notunuz : FF")

şeklinde kaba taslak bir uygulama yaptım siz burada ayrıca vize ve final notlarını 0-100 bir değer girmesini sağlayabilirsiniz.

Mobilhanem.com da Python Dersleri serisinin bu dersinde Python Koşul İfadelerini öğrendik bir sonraki dersimiz Python da Döngüler konusunu işleyeceğim. Anlamadığınız , eksik yada hatalı gördüğünüz olursa çekinmeden ulaşabilirsiniz size yardım etmekten mutluluk duyarım bir sonraki yazıda görüşmek üzere.

Bütün Python derslerine buradan ulaşabilirsiniz.

Bol örnek 🙂

648

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

24 Yorum

  • Hocam merhaba. Siteniz adına size teşekkür etmek istiyorum. Fen lisesinde öğrencilerimize bilgisayar derslerimizde işlediğimiz Python ve PHP konularını sırf sizin sitenizden işliyoruz. Ders kitabından daha iyi anlatmışsınız.
    Sevgiler saygılar

  • if y==1: /* Burada invalid syntax hatası alıyorum
    print(int(z)*4000)

    elif y==2:
    print(z*3000)

    elif y==3:
    print(z*2000)

    elif y==4:
    print(z*1000)

    invalid syntax hatası alıyorum 1. satırda. Acaba nerede hata var? Teşekkürler.

  • mypassword =”of”
    number = 1

    print(“Garanti Bankacılığa Hoşgeldiniz”)

    sayı = int(input(” devam için 1 e basınız “))

    if sayı == number:

    print(“Hoşgeldiniz M.E.Y”)
    password = input(“lütfen şifrenizi giriniz”)

    else:
    print(“lütfen 1”)

    if password == mypassword:

    print(“Yapmak istediğiniz işlemi seçiniz”)
    print(“============================”)

    else:
    print(“parola yanlış plstryagain”)
    print(“(try again)”)

    burada mypassword için rakam tanımladığımda kodu çalıştırınca rakamları doğru yazsamda beni else ‘ ye atıyor ayrıca ilk if koşulunda yanlış girince else atıyor ardından hata veriyor hata ise

    Traceback (most recent call last):
    File “C:/Users/caess/PycharmProjects/Roskosmos/Ares.py”, line 16, in
    if password == mypassword:
    NameError: name ‘password’ is not defined

    halbuki kodu bitirmesi gerekmiyor mu?

    • Kullanıcıdan değer alırken değişken adını sayı şeklinde almışsınız fakat karşılaştırma yaparken password şeklinde karşılaştırmışsınız dolayısıyla değişken tanımlı değil hatası almışsınız. ve bunun gibi birçok hatanız var size tavsiyem dersleri baştan tekrar etmek ve takıldığınız konularda soru-cevap kısmında yada sosyal medya hesaplarımdan bana ulaşmak pes etmeyin çalışmaya devam.

  • Hocam sizin sitenizden phyton öğrenmeye çalışıyorum ancak böyle bir kod yazdım çalışmadı
    Yaş = input(“Yaşınızı giriniz”)
    if(Yaş >= 18)
    print(“Yetişkinsiniz”)
    if(Yaş < 18)
    print("Oy veremezsiniz")
    input()
    acaba çalışmama nedenini yazabilirmisiniz

    • Merhabalar yaş = input(“Yaşınızı girin”) yaptığınız zaman kullanıcıdan karakteristik bir değer alıyorsunuz bu yüzden hata alıyorsunuz.
      Doğru kullanım Yaş =int(input(“Yaşınızı giriniz”)) şeklinde yaparsanız integer tipinde bir değer alırsınız klavyeden.
      5. dersimiz olan kullanıcıdan bilgi alma dersimize bakmanızı tavsiye ederim iyi günler.

  • merhaba hocam. elif hakkındaki örneğiniz biraz karışık geldi. Daha açık bir örnekle yazabilirseniz çok daha iyi olur (ben başka bir yerden öğrendim, diğer arkadaşlar için öyledim) onun dışında müthiş hizmet teşekkürler 😀

  • İyi günler hocam öncelikle siteniz için teşekkür ederim , ELİF komutu ile ilgili örneğinizi yaparken basarışız oldum, sorunun neyden kaynaklandığını tam anlamadım.Yardımlarınız için tekrardan teşekkür ederim.

    vize = int(input(“Vize notu :”))
    final = int(input(“Final notu :”))
    ortalama = (vize*0,4)+(final*0,6)

    if (ortalama => 85):
    print(“Harf notunuz :AA”)
    elif(ortalama>=70 and ortalama=60 and ortalama=45 and ortalama=0 and ortalama 85):
    ^
    SyntaxError: invalid syntax

    Process finished with exit code 1

    • Merhaba yavuz
      elif(ortalama>=70 and ortalama=60 and ortalama=45 and ortalama=0
      satırını yazarken eşitliği kontrol etmek için “==” şeklinde kullanıyorsun. Eğer “=” şeklinde yaparsan 60 değerini ortlama değerine atamak oluyor ama if şart koşulunda bir boolean değer değer dönmesi lazım.

  • Merhaba aynı kodu C dilinde örneklerken orada printf() şeklinde yazılması gerekmiyor mu hocam?

  • Ben bilgi yarışması programı yazıyorum fakat bu oluyor
    Elif 1==c
    print (“tebrikler cevap doğru”)
    yazıyorum invalid syntax hatası alıyorum

  • Merhaba,

    if (ortalama>=85):
    TypeError: ‘>=’ not supported between instances of ‘tuple’ and ‘int’

    Run Module yaptigimda bu hatayı aldım. Sebebi nedir acaba?

  • Nickler =(“ayşe”,”fatma”,”hayriye”,”nurgül”)
    Şifreler = (“1212″,”maviş”,”tuplegirl”,”03nrg03″)
    isim= input(“Kullanıcı adınız :”)
    Şifre= input(“Şifreniz :”)

    if isim == Nickler:
    print(“Hoşgeldiniz”)

    #Burada if’in çalışmasını sağlayamıyorum. Yardımcı olur musunuz?

    • Girememesinin sebebi nickler bir listdir ve list de index belirtmeden karşılaştırma yapamazsınız. Tüm listeyi karşılaştırmak istiyorsanız for kullanmanız gerekmektedir.

      Nickler =[“ayşe”,”fatma”,”hayriye”,”nurgül”]
      Şifreler = (“1212″,”maviş”,”tuplegirl”,”03nrg03″)
      isim= input(“Kullanıcı adınız :”)
      Şifre= input(“Şifreniz :”)

      print (“girilen isim : ” + isim)

      for x in Nickler:
      if(x==isim):
      print(“Hoşgeldiniz”)

  • Merhabalar
    elif lerde statement excepted, found Py: ELIF_KEYWORD hatası alıyorum bunun sebebi nedir acaba yardımcı olursanız gerçekten çok sevinirimm 🙁

    def SimpleCalculator():
    while True:
    result = 0 #sonuc degiskeni her seferinde sifirlanmasi icin while dongusu icine yazdim
    result2 = 1 #sonuc isleminde sifir kullanirsak sonuc her zaman sifir olacagi icin while dongusunun icine yazdik

    print(“Enter 1 to Plus , Enter 2 to Minus , Enter 3 to Multiply , Enter 4 to Divided , Enter 5 to Exit”)
    option = input (“Enter the transaction you want to do: “)

    #toplama islemi icin
    if option = “1” :
    numbers = input(“Enter the numbers to be plused with spaces between them: : “).split(” “)
    try:
    for i in numbers:
    result += float(i)
    print(result)
    except ValueError:
    print(“Please enter numbers only”)

    # cikarma islemi kismi
    elif option = “2”
    numbers = input(“Enter the numbers to be minused with spaces between them: : “).split(” “)
    numbers = [float(i) for i in numbers] # her bir sayiyi float tipinde listeye ekledik
    result = numbers[0] – numbers[1] # ilk basta sonuc = 0 atadigimiz icin islemi normal yapsaydik 0 – i – i+1 … olacakti o yuzden ilk iki sayiyi for disinda hesapladik
    try:
    for i in range(len(numbers) – 2):
    result = result – numbers[i + 2]
    print(result)
    except ValueError:
    print(“Please enter numbers only”)

    # carpma islemi kismi
    elif option = “3”
    numbers = input(“Enter the numbers to be multiplied with spaces between them: : “).split(” “)
    try:
    for i in numbers:
    result2 *= float(i)
    print(result2)
    except ValueError:
    print(“Please enter numbers only”)

    # bolme islemi kismi
    elif option= “4”
    numbers = input(“Enter the numbers to be divided with spaces between them: : “).split(” “)
    numbers = [float(i) for i in numbers] # tum sayilari float tipine cevirip listeye ekledik
    try:
    result = numbers[0] / numbers[1] # ilk iki sayinin sonucunu bularak ilk islemi manuel yaptik geri kalanlari for ile yaptik
    del numbers[2] # manuel hesapladigimiz ilk iki sayiyi tekrar hesaplamamasi icin sildik
    for i in range(len(numbers)):
    result = result / numbers[i]
    print(result)
    except ValueError:
    print(“Please enter numbers only”)
    except ZeroDivisionError:
    print(“Please do not try to divide the numbers by zero.”)

    elif option = “5”
    print(“The Program Is Closing…”)
    break

    else
    print(“İnvalid , please enter an option”)

    SimpleCalculator()

  • girintileme işleminde
    a=3
    b=3
    if a==b:
    print(“a ile b birbirine eşittir”)
    tarafında hala aynı hatayı alıyorum ne yapmam gerek anlamadım yardım edermisiniz. 🙁

    • if a==b:
      print(“a ile b birbirine eşittir”)

      if koşulundan sonra girintiyi bu şekil yapmadıysan aynı hata gelir girinti için bir kere TAB tuşu yada dört kere boşluk tuşuna basman gerekiyor yukarıda hocamız yazmış bir daha bak istersen.

  • Merhaba Hocam. Son örneği uygularken bir hata aldım. Ortalamanı float olarak hesapladı ve if koşulu içerisinde float ile integer değerleri karşılaştırdığı için hata aldı sanırsam. (Ortalamanı 76.2 olarak hesaplamıştı)
    Hata şu şekilde idi:
    Traceback (most recent call last):
    File “C:/Users/HP/PycharmProjects/pythonProject2/onevideo.py”, line 14, in
    elif(ogrOrtalama>=51 & ogrOrtalama<61):
    TypeError: unsupported operand type(s) for &: 'int' and 'float'

    Sonradan koşul şartlarından önce ortalamanı integer değere dönüştürdüğümde ise hata almadım.
    ogrOrtalama= int(ogrOrtalama) şu şekilde.
    Fakat sizin yazdığınız kodu denedim ve hiç bir hata almadım bu konuda. Yani ortalama gene float type -da idi amma bu hiç bir sorun yaratmadı.
    Benim yazdığım kodda ne gibi hata var anlatır mısınız?
    Saygılar, Azərbaycandan selamlar!

  • Hocam merhaba ben sizin else deyimi için yaptığınız parola kodunu yapınca, şöyle bir hata aldım: SyntaxError: invalid syntax

  • Merhaba,
    Bu örnekle ilgili bir sorum var.
    elif satırına program not 85’ten küçük ise gelecek. “and ortalama <85" kısmını yazıp tekrar kontrol ettirmeye gerek var mı? Tabii diğer elif lerde de aynı şey mevcut.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?