Programlamanın her yerinde önemli bir kavram olan koşullu mantık hakkında konuşalım.
Koşullu mantık derken neyi kastediyorum?
Boolean'ları öğrendik, değil mi?
Doğru.
Ve elimizde yanlış var.
Ve bazılarınız bunların neden bu kadar faydalı olduğunu merak ediyor olabilir.
Koşullu mantık söz konusu olduğunda, boole'lar gerçekten çok önemlidir.
Örneğin, alt adında bir değişken oluşturduğumuzu varsayalım.
Ve ne var biliyor musun?
Motoru çalıştırıp çalıştıramayacağınızı otomatik olarak algılayan bir araba yaratacağız.
Belki de yeterince büyük değilseniz, motor çalışmaz ve sürmenize izin vermez, böylece bu arabanın süper güvenli
olduğundan ve yalnızca belki de 18 yaşın üzerindeki kişilerin kullanabileceğinden emin olurlar.
Peki böyle bir şeyi nasıl kodlayabiliriz?
Tesla'nın böyle yeni bir özelliği olduğunu varsayalım.
Peki, eski gibi bir şeyimiz olacak ve bunu şu şekilde ayarlayacağız.
Doğru.
Belki başka bir şeyimiz vardır.
Belki de lisansımız olduğundan emin olmak için lisansı kontrol eder, böylece lisans olduğunu söyleyebiliriz.
Ve sonra bunu true olarak ayarlayabiliriz.
Şimdi bunlar kullanıcıya ve sürücüye bağlı olarak doğru ve yanlış olarak değişebilir.
Ancak koşullu ifadelerden bahsederken kastettiğim şey budur.
Python'da if anahtar sözcüğünü bazı koşulların var olup olmadığını söylemek için kullanabiliriz ve bu sadece benim yazım.
Öyle bir şey yok.
Geçersiz sözdizimi ile kırmızı bir alt çizgi aldığımı görebilirsiniz.
Ancak burada doğru veya yanlış olarak değerlendirilen bir koşul söylemek istiyoruz.
Bizim durumumuzda, hey, eğer eskiyse, neye göre değerlendirilir, doğru olarak değerlendirilir diyebiliriz.
Eğer bu doğruysa, baskı diyelim.
Araba kullanacak yaştasın.
Şimdi burada birkaç yeni şey var.
Birincisi, noktalı virgül ya da iki nokta üst üste ekledim.
Ve burada girintinin farklı olduğunu göreceksiniz.
Aslında, enter tuşuna bastığımda.
Cullen'dan sonra, bana otomatik olarak bir boşluk verdiğini görüyorsunuz.
Bu Python yorumlayıcısına bir if deyimi, bir koşullu işlem yapacağımı söyler.
Ve eğer bu doğruysa.
Bu girintiye sahip olan her şeyi burada çalıştırın.
Ve eğer girinti olmadan bir şey yaparsam, diyelim ki yazdırma.
Kontrol et.
Python yorumlayıcısı için bu tamamen yeni bir satır gibidir.
Bu F bloğunun bir parçası değildir.
Ve burada gördüğünüz dalgalanmayı kullanıyorsanız, buna tıkladığımda küçük bir eksi işareti alıyorum.
Nasıl saklandığını görüyorsun.
Yaptığı şey şu: Hey, bu bir kod bloğu.
Bu başlı başına bir şey.
Ancak iyi girintilenmemiş dıştaki hiçbir şey ona ait değildir.
Yani bir Python yorumlayıcısına göre, şu satır var ve sonra şu satır var diyecektir.
Bu programı çalıştırdığımda ne demek istediğimi size göstereyim.
Araba kullanacak yaşta olduğunu anlıyorum.
Sonra da çek alıyorum.
Kontrol et.
Peki ya eskinin artık yanlış olduğunu söylersem?
Sizce ne olacak?
Eğer bunu çalıştırırsam.
Anladım mı?
Kontrol et.
Python yorumlayıcımız diyecek ki, hey, result değişkenini false olarak ayarla hey set is licensed equals
to true.
Ve sonra üçüncü satıra geçecek.
Hayır, orada bir şey yok.
Sıraya girmeye devam edeceğim.
Hey, eğer eskiyse, bu doğru mu?
Hayır.
Tüm bunlar yanlışsa ve yorumlayıcı şöyle diyecekse, och, bu kod parçasını yalnızca bu doğruysa
çalıştırmam gerekiyor çünkü bu artık yanlış, burada altta ne olduğunu tamamen görmezden geleceğim ve sadece
girintisi olmayan bir sonraki satıra gideceğim.
Yani yazdıracak, kontrol, kontrol.
Bu da koşullu ifadelerin gücüdür.
Esasen sıraları atlayabiliyoruz.
Yorumlayıcı burada ne olduğunu umursamıyor bile çünkü programıma sadece dördüncü satırdan altıncı satıra atlamasını
söyledim.
Ne kadar havalı değil mi?
Böylece if anahtar kelimesinin olduğunu öğrendik, ancak else adında kullanabileceğimiz başka bir şey daha var.
Ve burada girintiye eklemediğimi fark edeceksiniz.
Ve başka, adından da anlaşılacağı gibi, basitçe diyor ki.
Hey, eğer bu şey doğruysa, o zaman bunu yapın.
Aksi takdirde bunu da yapın.
Ve yine, girintiyi eklediğimi görüyorsunuz.
Bu programda neler olacağını tahmin etmeye çalışın.
Çalıştır'a tıklarsam.
Hesabı alıyorum.
Kontrol et çünkü diyor ki, hey, eski.
Bu doğru mu?
Hayır, bu doğru değil.
Tamam.
Yorumlayıcının başka bir şey gördüğünü tamamen göz ardı edeceğim.
Bu doğru değildi.
Bu yüzden koşacağım.
Bu yanlış olarak değerlendirildiğinde, her zaman çalıştıracağım.
Yazdır, kontrol et.
Kontrol et.
Ya değişirsem?
Eskiden şimdiye doğru eşit midir?
Bundan sonra ne olacak?
Pekala.
Anladım mı?
Araba kullanacak yaştasın.
Başka.
Yalnızca f kod bloğu false olarak değerlendirilirse çalışır.
Çok, çok havalı.
Tamam.
Size başka bir soru sorayım.
Ya buraya baskı yapsaydım?
Bunu da reşit değilsin olarak değiştirelim.
Eğer bunu çalıştırırsam.
Beklediğin bu muydu?
Umarım artık bunun beklenen bir davranış olduğu konusunda hemfikirsinizdir, çünkü eski doğrudur.
Bunu yazdıracağım ve sonra Python yorumlayıcısı diyecek ki, bu doğruydu, bu yüzden bloğu tamamen
görmezden geleceğim ve sonra sadece bir sonraki satıra geçeceğim.
Sekizinci hatta ne var?
Hiçbir şey.
Dokuzuncu satıra gideceğim ve OC OC OC yazdıracağım.
Gördüğünüz gibi, artık programlarımızın akışını kontrol ediyoruz. 1'den 9'a kadar satır satır gitmek yerine,
şimdi dördüncü satırda bir çeşit kontrol yap diyoruz.
Ve buna dayanarak, birkaç satır atlayın.
Çok, çok havalı.
Tamam.
Size göstermek istediğim bir şey daha var.
Ve bu L.
Eğer.
Ve bunun biraz garip göründüğünü biliyorum.
Bunun başka bir şey olacağını düşünürsünüz ama.
Hayır, hayır, hayır.
Ben.
F.
Peki bunun ne işe yaradığını düşünüyorsunuz?
Eğer bir şey söylerseniz if ile birlikte kullanırsınız.
Eğer.
Aksi takdirde.
Başka.
Eğer.
Başka bir koşul.
Yani, diyelim ki.
Lisanslı.
O zaman başka bir koşul yapın.
Yani baskı diyelim.
Artık sürebilirsin.
Bunu tekrar gözden geçirelim.
Diyeceğim şu ki, bu kişi yeterince yaşlı mı?
Eğer kişi yeterince yaşlıysa ve bu doğru olarak değerlendirilirse.
O zaman yapmanı istiyorum.
Bunu çalıştır.
Aksi takdirde.
Bu koşulu çalıştırmanı istiyorum.
Hey, bu doğru mu?
Hayır.
Eğer doğru değilse, o zaman başka bir yere atlayın.
Peki Çalıştır'a tıklarsam burada ne olacak?
İlk koşullu blok için doğruyu burada buluyoruz.
Yani otomatik olarak Python yorumlayıcısı şöyle diyecek: Burada true değerini aldık, bu yüzden bunu görmezden
geleceğim ve bunu görmezden geleceğim ve sonra yazdıracağım.
Tamam, tamam.
Ama diyelim ki eski olan artık yanlış.
Bundan sonra ne olacak?
Çalıştır'a tıklarsam.
Bu yanlış.
Bu yüzden Python yorumlayıcısı, hayır, bu bloğu umursamayacağım diyecek
ve ben de, hey, başka bir koşul varsa, hey, bu kişi lisanslı mı?
Evet, öyleler.
O yüzden basacağım.
Şimdi araba kullanabilirsin ve başka bir şey yapamazsın.
Yani şöyle çalışıyor.
Ya bunların ikisi de yanlışsa?
Tahmin edebileceğiniz gibi, Python yorumlayıcısı bunu görmezden gelecek ve "hayır, bu yanlış,
bu hayır, bu yanlış" diyecektir.
Ve son olarak bunu çalıştıracak.
Görüyorsunuz, başka bir şey daha var.
Tüm bu koşulların hiçbiri doğru değilse, o zaman bunu çalıştıracağız.
Yani bir anlamda yedek.
Hey, eğer her şey başarısız olursa, o zaman bunu yap.
Çok, çok havalı.
Şimdi, bu programa bakarsanız, hmm, bu program gerçekten o kadar da iyi çalışmıyor, değil
mi?
Yani, kişinin yaşlı olup olmadığını ve ehliyetli olup olmadığını kontrol ediyoruz, ancak her ikisini de kontrol etmemiz gerekmez mi?
Ehliyeti olan ve kuruyabilecek yaşta birini istiyoruz.
Hmm.
İşte bu.
Bu hatalı bir program.
Eğer bunu bir Tesla'da uygularsak, bir sürü dava açılır, değil mi?
Çünkü belki lisanslı ama yeterince yaşlı olmayan birini alabiliriz ki bu da mantıklı değil sanırım.
Ama yeterince büyük ama ehliyet almamış birini bulabiliriz ve bir şekilde arabaya erişebiliriz
ve motoru çalıştırıp sürebilir.
Bu dava açılmayı bekliyor.
Peki bunu nasıl düzeltebiliriz?
Hmm.
Gücün ne olduğunu biliyor musun?
Bu bir ifade, değil mi?
Hatırlarsanız, ifade bir değer üreten bir şeydir.
Bu da demek oluyor ki, bunun sadece burada doğru olması gerekmiyor, bir ifade de olabilir,
yani eğer öyleyse diyebilirim.
Eski ve lisanslı.
O zaman bunu yapabilirim.
Ve bu daha önce görmediğimiz yeni bir şey.
Son.
Bu Python'daki başka bir anahtar kelimedir.
Gelecek videoda bu anahtar kelimelerden daha fazla bahsedeceğiz.
Ama bu İngilizce gibi okunmalı, değil mi?
Eski ve ruhsatlı ise, bunu yapın.
Artık LEF'i kaldırabiliriz.
Ve sonra burada.
Her iki ifadenin de doğru olarak değerlendirilmesi gerekir.
Yani, burada ne olursa olsun.
Bu doğru olarak değerlendirilmelidir.
Ve bu doğru olarak değerlendirilmelidir.
Ve ancak her ikisi de sonunda belirtildiği gibi doğru olduğunda, o zaman araba kullanmak için yeterince büyüksünüz ve ehliyetiniz var.
Yani bunu çalıştırırsam.
Bir hata oranı alıyorum çünkü ya da bir hata değil, ancak bunların ikisi de yanlış olduğu için bloğa
giriyor.
Bunlardan sadece biri doğruysa ve çalıştır'a tıklarsam.
Yaşınız tutmuyor çünkü bunların her ikisinin de doğru olması gerekiyor.
Çalıştır'a tıklarsam.
Hey.
Pekala, araba çalışıyor.
Tesla'nızı alıp gidebilirsiniz.
Tamam.
Bu videoyu bitirmeden önce, çünkü bu çok fazla, sadece bir şeyi not etmek istiyorum, o da l if
deyimi.
Live deyimi gerçekten çok kullanışlıdır çünkü bunun gibi bir kodunuz olduğunda bir if deyiminiz
ve bir L deyiminiz vardır.
Genellikle her birinden sadece bir tane görürsünüz.
Yani, elbette, programın başka bir bölümünde, başka bir if deyimine ve buranın içinde başka bir
else deyimine sahip bir if deyimine sahip olabilirim.
Ancak genellikle bu gruplamayı birlikte yaptığınızda, yalnızca bir if ve bir else görürsünüz, ancak
birden fazla FS'ye sahip olabilirsiniz, böylece burada başka bir koşul bırakabilirim ve sonra burada başka bir koşul bırakabilirim
ve istediğiniz kadar çok olabilir.
Sonunda program ya bu koşullardan birini doğru olarak değerlendirecek ya da else'e girecektir.
BLOK Ama genellikle bu sırayı takip edersiniz.
Tamam.
Bu çok fazlaydı.
Biraz ara verelim ve bu konuyu biraz daha inceleyelim.
Bir sonrakinde görüşürüz.
Güle güle.