Python’da “Not” kullanımı

Soru

Burada geçen not if ( not …. ): kısmını tam olarak anlayamadım.


Cevaplandı 0
uccergel 2 sene 3 Cevaplar 871 görüntüleme Çırak 0

Hakkında uccergelÇırak

Cevaplar ( 3 )

  1. Merhaba,

    EBOB’un açılımıyla konunun anlaşılmasını sağlayabiliriz.

    EBOB’da amaç iki sayının En Büyük Ortak Böleni kavramını elde etmektir. Bunun için de 2 sayı sıra ile kendisine kadar olan sayılara bölünerek ortak bölen elde edilir. “%” operatörü bir sayının bölümünden kalanı ifade etmekte kullanılır. Eğer tam bölünüyorsa oradan dönen sonuç 0 yani “Bool” ifade ile “False” olacak. not operatörü ile bunun tersi alınarak “if” şartının gerçekleşmesi sağlanıyor.

    Eğer hala oturmadı ise aynı kısmı aşağıdaki şekilde de çalıştırabilirsiniz;

    Açıklarsak dönen sayı sıfır olduğunda boolean olarak False, diğer tüm durumlarda True dönecektir.

    En iyi cevap
  2. Örnek ile açıklamak daha doğru olacaktır:

    sayi1 = 10 olsun ve sayi2 = 15 olsun.

    Biz biliyoruz ki 10 ve 15′ in ebob katsayısı 5 ‘tir.
     while (i <= sayi1) and (i <= sayi2):
            if (not (sayi1 % i) and not (sayi2 % i)):
                ebob = i
            i += 1
    burada if kısmında 10’un 1 ile bölümünden kalan 0 ve 15’in 1 ile bölümünden kalan 0 ifadesi parantez içlerinde bulunmuş.
    ilk loop için i = 1 denmiş ve ifade:
    if (not(10 % 1) = 1 ve not (15 % 1) = 1)
    Yukarda biraz karmaşıklık var doğrusu ancak şöyle düşün not eki olmadan 10 % 1 = 0 dır. Ama not eki geldiğinde bu “0” lar “1” olacağı için if koşulu True olur ve ilk döngüde ebob = 1 olarak hesaplar.
    i += 1 diyerek i sayısı 2 olarak alınır.
    while loop için hala 2<10 ve 2<15 olduğu için yine döngüye devam eder ve ikinci döngüde i = 2 için:
    if (not(10 % 2) = 1 ve not (15 % 2 ) = 1)
    Tekrarlayayım normalde 10 sayısının 2 ile bölümünden kalan “0” dır. Ancak “not” eki bu “0” ifadesi “1” yapar. Ve if koşulu her iki sayının da 1 olması nedeniyle True response verir. ebob = 2 olur.
    .
    .
    .
    .
    Bu şekilde 3 ve 4 hesaplandı diyelim.  3 ve 4 için if False döndürür ve ebob en son kalan sayı “2” olur.
    i = 5 için if döngüsünde (10 % 5) = 0  ve (15 % 5) = 0 hesaplanır not ekleri geldiği için yine “0”lar “1” olur ve koşul True response verir. ebob = 5 olur.
    Asıl nokta burada i = 6 olduğunda 10%6 = 4 ve 15%6 = 3 lojik ifadelerde “0” harici her değer “1” kabul edildiği için lojik olarak “4” ve “6” lojik-1 kabul edilir. Ve if içinde yer alan not eki bu “1” leri “0” yapar if False response verir ve if içine girmez ebob = 5’tir hala.  Tıpkı 3 ve 4’te olduğu gibi.
    Bu şekilde hangi sayı gelirse gelsin ebob = 5 olarak kalacaktır.
    İyi çalışmalar dilerim.

Cevap bırak

Captcha Captcha güncellemek için resime tıkla