Python'da koşullu if ifadesi. Sözdizimi, else/elif blokları, örnekler

Programlamayı öğrenme sürecinde çoğu zaman gerçek hayatta uygulanması o kadar kolay olmayan programlar oluşturmak gerekir. Sonuçta, zaman zaman sadece belirli koşullar altında talimatları izlemeniz gerekir. Bunu programda uygulayabilmek için tüm dillerde kontrol ifadeleri bulunur. Onların yardımıyla, yalnızca belirli bir koşul doğru olduğunda kod yürütme, döngü oluşturma veya belirli eylemleri gerçekleştirme akışını kontrol edebilirsiniz.

Bugün, mevcut durumu belirli bir koşul için kontrol eden ve bu bilgilere dayanarak sonraki eylemler hakkında kararlar veren if deyiminden bahsedeceğiz.

Kontrol İfadeleri Türleri

Genelde if, bir programın akışını kontrol eden tek ifade değildir. Kendisi gibi daha büyük bir operatörler zincirinin bir parçası olabilir.

Yürütme sürecini kontrol eden döngüler ve ifadeler de vardır. Bugün sadece koşullu operatör ve katılabileceği zincirlerden bahsedeceğiz.

Programlamada dallanma diye bir şey vardır. Tam da bu, yalnızca belirli bir koşul doğruysa yürütülen bir dizi komut anlamına gelir. Kriterlerin kendileri farklı olabilir:

  1. Bir değişkenin belirli bir değere eşitliği.
  2. Belirli bir eylemi gerçekleştirme.
  3. Uygulama durumu (daraltılmış veya değil).

Spektrum çok daha büyük olabilir. Koşullu ifadeler birkaç türde gelir:

  1. Tek şube ile. Yani, belirli eylemlerin gerçekleştirildiği tek bir kontrol gerçekleştirilir.
  2. İki veya daha fazla şube ile. Kriter 1 doğruysa, kriter 2'yi kontrol edin. Doğruysa, 3'ü kontrol edin. Bu nedenle, gerektiği kadar çok kontrol yapın.
  3. Birkaç koşulla. Burada her şey basit. Yorumlayıcı, birden çok koşulu veya bunlardan birini kontrol eder.

if

if ifadesinin yapısı tüm dillerde aynıdır. Ancak Python'da sözdizimi diğerlerinden biraz farklıdır:

eğer koşul:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

İlk olarak, operatörün kendisi bildirilir, ardından çalışmaya başladığı koşul yazılır. Koşul doğru veya yanlış olabilir.

Bunu komutları olan bir blok takip eder. Karşılanacak bir kriteri hemen takip ediyorsa, karşılık gelen komut dizisine if bloğu denir. İçinde istediğiniz sayıda komut kullanabilirsiniz.

Dikkat! Tüm if blok komutlarındaki girinti aynı boyutta olmalıdır. Blok sınırları girintiler tarafından belirlenir. 

Dil belgelerine göre, girinti 4 boşluktur. 

Bu operatör nasıl çalışır? Yorumlayıcı if kelimesini gördüğünde, ifadeyi kullanıcı tarafından belirlenen kriterlere göre hemen kontrol eder. Bu durumda, talimatları aramaya ve onları takip etmeye başlar. Aksi takdirde, bu bloktaki tüm komutlar atlanır.

Koşuldan sonraki bir ifade girintili değilse, if bloğu olarak değerlendirilmez. Bizim durumumuzda, bu çizgi . Bu nedenle, kontrolün sonucu ne olursa olsun, bu satır yürütülecektir.

İşte bu operatörün nasıl çalıştığına dair bir örnek için bir kod parçası.

sayı = int(input(“Bir sayı giriniz: “))

sayı > 10 ise:

    print(“Sayı 10'dan büyük”)

Bu program kullanıcıdan bir sayı ister ve 10'dan büyük olup olmadığını kontrol eder. Eğer öyleyse uygun bilgiyi döndürür. Örneğin, kullanıcı 5 sayısını girerse, program basitçe sona erecektir ve hepsi bu kadar.

Ancak 100 sayısını belirtirseniz, tercüman ondan fazla olduğunu anlayacak ve rapor edecektir.

Dikkat! Bizim durumumuzda koşul yanlışsa program durur, çünkü talimattan sonra herhangi bir komut verilmez.

Yukarıdaki kodda sadece bir komut var. Ama onlardan çok daha fazlası var. Tek şart girinti yapmaktır.

Şimdi bu komut dizisini analiz edelim.

sayı = int(input(“Bir sayı yazın: “))

sayı > 10 ise:

    print(“ilk satır”)

    print(“ikinci satır”)

    print(“üçüncü satır”)

print(“Girilen sayı ne olursa olsun çalıştırılan satır”)

print(“Uygulamayı sonlandır”)

2, 5, 10, 15, 50 değerlerini girerseniz çıktının ne olacağını tahmin etmeye çalışın.

Gördüğünüz gibi, kullanıcı tarafından girilen sayı ondan fazlaysa, üç satır + bir "Her seferinde çalıştır ..." ve bir "Son" metniyle ve ondan küçükse, o zaman sadece bir tane ile çıktı alınır. farklı bir metin. True ise yalnızca 3,4,5 satırları yürütülür. Ancak, kullanıcı hangi numarayı belirtirse belirtsin, son iki satır yazılacaktır.

İfadeleri doğrudan konsolda kullanırsanız, sonuç farklı olacaktır. Doğrulama kriterini belirledikten sonra Enter tuşuna basarsanız, tercüman hemen çoklu hat modunu açar.

Aşağıdaki komut dizisini yazdığımızı varsayalım.

>>>

>>> n = 100

>>> n > 10 ise:

...

Bundan sonra >>>'nin yerini üç noktanın aldığını göreceğiz. Bu, çok satırlı giriş modunun etkinleştirildiği anlamına gelir. Basit bir deyişle, Enter'a basarsanız, talimatın ikinci aşamasının girişine aktarılırsınız. 

Ve bu bloktan çıkmak için bloğa bir yapı daha eklemeniz gerekiyor. if.

>>>

>>> n = 100

>>> n > 10 ise:

… yazdır(«nv 10»)

...

Koşul doğru değilse program sona erer. Bu bir problemdir, çünkü kullanıcı böyle bir programı bir arıza nedeniyle kapanmış olarak algılayabilir. Bu nedenle kullanıcıya geri bildirimde bulunulması gerekmektedir. Bunun için bir bağlantı kullanılır eğer-değilse.

ifade operatörü eğer-değilse

Bu operatör, bir bağlantı uygulamanıza izin verir: ifade belirli bir kuralla eşleşirse, bu eylemleri gerçekleştirin ve değilse, diğerlerini yapın. Yani programın akışını iki yola ayırmanızı sağlar. Sözdizimi sezgiseldir:

eğer koşul:

    # eğer blok

    ifade 1

    ifade 2

    ve benzeri

Başka:

    # başka blok

    ifade 3

    ifade 4

    ve böylece:

Bu operatörün nasıl çalıştığını açıklayalım. İlk olarak, standart ifade iş parçacığında yürütülür porsuk, eşleşip eşleşmediğini kontrol etmek koşul "doğru ya da yanlış". Diğer eylemler, kontrolün sonuçlarına bağlıdır. Doğruysa, koşulu izleyen yönergeler sırasındaki komut doğrudan yürütülür. porsuk, eğer yanlışsa, o zaman başka

Bu şekilde hataları halledebilirsiniz. Örneğin, kullanıcının bir yarıçap girmesi gerekir. Açıkçası, yalnızca artı işaretli bir sayı olabilir veya boş bir değerdir. 0'dan küçükse, pozitif bir sayı girmenizi isteyen bir mesaj göndermeniz gerekir. 

İşte bu görevi uygulayan kod. Ama burada bir hata var. Hangisini tahmin etmeye çalışın. 

yarıçap = int(input("Yarıçap girin: "))

yarıçap >= 0 ise:

    print(“Çevre = “, 2 * 3.14 * yarıçap)

    print(“Alan = “, 3.14 * yarıçap ** 2)

    Başka:

        print(“Lütfen pozitif bir sayı giriniz”)

Girinti uyuşmazlığı hatası. eğer è Else onlarsız veya aynı sayıda (iç içe olup olmadıklarına bağlı olarak) yerleştirilmelidir.

Başka bir kullanım örneği verelim (operatör hizalaması ile her şeyin doğru olacağı) – bir parolayı kontrol eden bir uygulama öğesi.

şifre = input("Şifreyi giriniz: ")

if şifre == «şşş»:

    print(“Hoş Geldiniz”)

Başka:

    print(“Erişim engellendi”)

Bu talimat, şifre sshh ise kişiyi daha fazla atlar. Başka bir harf ve sayı kombinasyonu varsa, "Erişim reddedildi" mesajını görüntüler.

deyim-ifadesi-elif-else

Yalnızca birkaç koşul doğru değilse, bloktaki ifade yürütülür. başka. Bu ifade şu şekilde çalışır.

koşul_1 ise:

    # eğer blok

    ifade

    ifade

    daha fazla açıklama

elif koşulu_2:

    # ilk elif bloğu

    ifade

    ifade

    daha fazla açıklama

elif koşulu_3:

    # ikinci elif bloğu

    ifade

    ifade

    daha fazla açıklama

...

başka

    ifade

    ifade

    daha fazla açıklama

İstediğiniz sayıda ek koşul belirtebilirsiniz.

iç içe ifadeler

Birden çok koşulu uygulamanın başka bir yolu, if bloğuna ek koşul kontrolleri eklemektir.

Kullanım if başka bir koşul bloğunun içinde

gre_score = int(input(“Mevcut kredi limitinizi giriniz”))

per_grad = int(input(“Kredi notunuzu giriniz: “))

per_grad > 70 ise:

    # dış if bloğu

        gre_score > 150 ise:

            # iç if bloğu

    print(“Tebrikler, kredi aldınız”)

Başka:

    print(“Üzgünüz, kredi almaya uygun değilsiniz”)

Bu program kredi notu kontrolü yapar. 70'in altında ise program kullanıcının kredi almaya uygun olmadığını bildirir. Daha büyükse, mevcut kredi limitinin 150'den büyük olup olmadığını görmek için ikinci bir kontrol yapılır. Evet ise, kredinin verildiğine dair bir mesaj görüntülenir.

Her iki değer de yanlışsa, kullanıcının kredi alma olasılığının bulunmadığına dair bir mesaj görüntülenir. 

Şimdi bu programı biraz yeniden çalışalım.

gre_score = int(input(“Mevcut limiti giriniz: “))

per_grad = int(input(“Kredi puanını giriniz: “))

per_grad > 70 ise:

    gre_score > 150 ise:

        print(“Tebrikler, kredi aldınız”)

    Başka:

        print(“Kredi limitiniz düşük”)

Başka:

    print(“Üzgünüz, kredi almaya uygun değilsiniz”)

Kodun kendisi çok benzer, ancak iç içe if ayrıca koşulun yanlış olması durumunda bir algoritma sağlar. Yani karttaki limit yetersiz ama kredi geçmişi iyi, “Kredi notunuz düşük” mesajı çıkıyor.

bir koşul içinde if-else ifadesi başka

Test puanlarına göre öğrencinin notunu belirleyen başka bir program yapalım.

puan = int(input(“Puanınızı giriniz: “))

puan >= 90 ise:

    print(“Harika! Notunuz A”)

Başka:

    puan >= 80 ise:

print(“Harika! Notunuz B”)

    Başka:

puan >= 70 ise:

    print(“İyi! Notunuz C”)

Başka:

    puan >= 60 ise:

print(“Notunuz D. Materyalleri tekrar etmeye değer.”)

    Başka:

print(“Sınavda başarısız oldunuz”)

Uygulama önce puanın 90'dan büyük veya XNUMX'a eşit olup olmadığını kontrol eder. Evet ise, A notu verir. Bu koşul yanlış ise sonraki kontroller yapılır. Algoritmanın ilk bakışta hemen hemen aynı olduğunu görüyoruz. Yani içeriyi kontrol etmek yerine başka bir kombinasyon kullanmak daha iyi eğer-elif-else.

yani operatör if çok önemli bir işlevi yerine getirir – belirli kod parçalarının yalnızca ihtiyaç duyulduğunda yürütülmesini sağlar. Onsuz programlamayı hayal etmek imkansızdır, çünkü en basit algoritmalar bile “sola giderseniz onu bulursunuz ve sağa giderseniz şunu ve bunu yapmanız gerekir” gibi çatallara ihtiyaç duyar.

Yorum bırak