‫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ı için, bu satır var ve sonra bu 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 altındakileri 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 şimdi bunun beklenen 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ı?
‫Bu 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 şeyi görmezden gelebilirsin.
‫Yani şu şekilde ç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.
‫Yani, bu koşullardan 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 yalnızca 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.