Tamam.
Bu videoda sizi kandırmaya çalışacağım.
Eşitlik kontrolü yaptığım bu ifadelere bakmanızı istiyorum.
Doğru.
Diyorum ki, hey, gerçek eşittir bir mi?
Boş dize eşittir bir, boş eşit olan eşitleri silmek için yapar.
Birbirimizi.
Şimdi videoyu burada durdurun ve bunun sonuçlarının ne olacağını tahmin etmeye çalışın.
Hazır.
Bu arada, eğer bundan %100 alırsan.
Aferin sana, çünkü Python'u ilk kez öğreniyor olsaydım bunu anlayamazdım.
Hadi gidelim.
Hmm.
Bu yüzden mi bekliyordun?
Doğru.
Doğru olarak değerlendirildiğinde, doğru olarak değerlendirilmek ister.
Boş dize, yanlış olarak değerlendirilen bir dizeye eşittir.
Bu mantıklı çünkü kesinlikle birbirlerine eşit değiller.
Değil mi?
Boş bir dizi bire eşit değildir.
Ve on eşittir on. 0.
Ve sonra her ikisi de boş olan yarış.
Doğruya eşittir.
Şimdi, burada size göstermemin nedeni, çift eşittirin eşitliği veya değer eşitliğini kontrol etmesidir.
Yani, örneğin, ilk doğru bire eşitse.
İki farklı türü vardır.
Biri tamsayı, diğeri külçe.
Onları aynı türe dönüştürecektir.
Bu durumda, bu bir boolean değerine bu şekilde dönüştürülecektir.
Ve eğer hatırlarsanız, biri gerçektir.
Yani bu true olarak değerlendirilecektir, bu yüzden true değerini alırız.
Peki ya diğeri?
Boş bir dize yanlış olduğundan, yanlış olarak değerlendirilir.
Ve yanlış doğru demek değildir.
Doğru.
Çünkü burada eşitliği kontrol ediyoruz.
Böylece bunlardan biri diğer türe dönüştürülür.
Peki ya boş bir dizi?
Yine, boş bir dizi aslında yanlıştır.
Yani bu bire eşit olmayacak.
On, 10'luk bir yüzeye eşittir. 0.
Bu bir tamsayıya veya floata dönüştürülür ve birbirlerine eşit olurlar.
Ve bu beklenen bir davranıştır.
Ve sonra boş bir dizi, boş bir diziye eşittir.
Bu diziyi eklersem, bir, iki, üç, bir, iki, üç ve çalıştır'a tıklıyorum.
Geçersiz bir sözdizimi alıyorum çünkü burada bu var.
Şunu tekrar çalıştıralım.
Anlıyorum.
Bu mantıklı.
Bunu bir olarak değiştirelim ve Çalıştır'a tıkladığımda ne olacağını görelim.
Tamam.
Hala yanlış.
Şimdi, bu iş biraz zorlaşıyor, değil mi?
Sevdim.
Hmm.
Bu doğru olarak değerlendirilmeli miydi?
Ama hayır, yanlış anladık.
Yani bu, buradakine kıyasla tür olarak dönüştürülmez.
Şimdi, bu kafanızı karıştırmasın çünkü böyle bir şeyi kontrol ediyorsanız bu kötü bir kod olacaktır.
Açıkçası, iki türü, aynı türden iki türü birlikte kontrol ediyor olmalısınız.
İdeal olarak, karşılaştırma operatörlerini veya bunun gibi mantıksal operatörleri kullandığınızda, iki türü karşılaştırırsınız ve
Python'un bu tür dönüşümünü yapmasına izin vermezsiniz.
Ve umarım Python bunu bizim için çözer.
Ancak umarım çift kalite mantıklıdır çünkü yapabileceğimiz başka bir kontrol daha var, bu
da bir anahtar kelime ve python.
Tüm bu eşittir işaretlerini is ile değiştirirsek ne olur?
Sizce bir fark olur mu?
Bir göz atalım.
Çalıştır'a tıklarsam.
Her şey için yalan söylüyorum.
Hmm.
Peki buradaki fark nedir?
Equals değer eşitliğini kontrol eder.
Ne gibi?
Bir, iki, üç.
Bu bir, iki, üç ile aynı değere sahip.
Bir listede aslında kontroller vardır.
Bellekte bu değerin saklandığı konum aynıysa.
Hmm.
Şunun üzerinden geçelim.
Çok doğru.
Bu tek nota doğru mu, tek nota doğru değil mi, doğru olacak tek nota doğru mu?
Ne hakkında?
Dize bir.
Bu mu?
Hayır.
Yani, bir tanesinin dize olabilmesi için bir tane olması gerekir, değil mi?
Çünkü tek bir dize bellekte sadece tek bir yerde değildir.
Kelimenin tam anlamıyla aynı şey.
Peki ya bu liste?
Aslına bakarsanız, dizi yapalım, boş dizi mi?
Bu mu yoksa bu liste bir liste mi?
Eğer bunu çalıştırırsak.
Hala yanlış anlıyorum.
Hmm.
Ve bu biraz zor ve aynı zamanda ileri düzey.
Her liste oluşturduğumda, hafızada bir yere ekleniyor.
Yani bu, bellekteki bir konumdadır.
Ama ne zaman yeni bir liste oluştursam.
Başka bir yerde oluşturulmuştur.
Yani bunlar hafızada farklı yerlerde yaşayan tamamen farklı iki listedir.
Yani kontrol edecek, hey, bu aynı bellek alanında mı, bununla aynı kitap rafında mı?
Hayır, öyle değil.
Peki bu neden sayılar ve dizeler gibi şeyler için işe yarıyor?
Bunun nedeni, kaputun altında, bunlar çok basit olan, bellekte bulunan, ancak aynı öğelere
sahip aynı liste olsa bile liste gibi bir şeye kıyasla tek bir konumda bulunan türlerdir.
Çünkü bu bir veri yapısıdır.
Her oluşturduğumuzda, yeni bir konumda oluşturulur, böylece bir A değişkenimiz olsa bile.
Bu liste.
Ve bu arada, bu sözlükler, kümeler, tuple'lar gibi tüm veri yapılarımız için aynı olacaktır.
B eşittir bunu yaparsam ve A'yı kontrol edersem, bu B midir?
Hayır.
Farklı bir bellek alanında oluşturulurlar.
Yani A noktasının bulunduğu yer B noktasının bulunduğu yerden farklı bir yerdedir.
Ama eğer yaparsam A eşittir.
Doğru anladım çünkü bu çifte eşitlik kontrolü.
Sadece vadiler.
Şimdi bu biraz zor bir konu, bu yüzden bu videoyu birkaç kez izlemeniz gerekebilir.
Bunu kendiniz birkaç kez uygulamanız gerekebilir.
Ancak IS ve çift eşittir arasındaki farkın biraz daha katı olma eğiliminde olduğunu unutmayın.
Değeri kontrol eden eşitliğe karşı tam olarak aradığınız şeyi kontrol ediyorsunuz.
Tamam.
Bu çok kötüydü.
Bir sonraki videoda görüşürüz.
Güle güle.