Fonksiyonlar bool değeri if not kurulum_dizini :


Merhabalar Python ’ da yeniyim ve belgelerde çalışırken böyle bir kodu anlamadım. Kurulum dizini = ‘’ boş karakter yapınca bool(kurulum_dizini) nin değeri 0 yani False oluyor . if not kurulum_dizini olan yerin anlamı bool değeri 0 değilse demek değil mi ? Yani True ise , yani 1 ise , yani değer girilmiş ise Lütfen programı hangi dizine … demesi gerekiyor bu da saçma olmaz mı ? Fakat kodu çalıştırınca bir problem olmuyor ama kodun anlatmak istediğini bir türlü anlayamıyorum özellikle if not kurulum_dizini ne anlama gelir tane tane anlatabilecek olan var mı ? Vakit ayıran arkadaşlara şimdiden çok teşekkür ederim.

Merhaba.

Fotoğraf yerine bahsettiğiniz yerin linkini ve kodu atmanız daha iyi olur.

Hayır, bool’a çevrilmiş hali False ise demek. not işleci False’ı True, True’yı da False yapar.

>>> not True
False
>>> not False
True
>>> not ""
True
>>> not "."
False

Evet saçma olur.

Aslında bu dediğiniz gibi çalışmadığını gösteriyor zaten :slight_smile:

if not bool(kurulum_dizini) veya kurulum_dizini’nin bir str örneği olacağını varsayarsak if kurulum_dizini == "" anlamına geliyor. Yani “kurulum_dizini’nin bool değeri False ise”.


Bu konuları tekrar gözden geçirin isterseniz:

1 Beğeni

Cevap ve kaynak için teşekkür ederim . Kaynağa baktım ve yine de anlamadım .
mesela ;
ad = input(“adınızı girin : “)
if not ad :
print(” Lütfen adınızı girin “)
else :
print(” Teşekkürler”)
Adımızı girmezsek bool değeri False olur .
not bool değeri false olanı True yapar bu durumda if not ad : ifadesi True ise anlamına gelmez mi ? True ise lütfen adınızı girin ifadesi de saçma olur hakikaten kafam almıyor .

if not ad : dediğimizde bu ad olan yer sade ad True mu oluyor daha inputla değer almadığımız zaman öyleyse if not ad dediğiniz gibi False olur aldııgm değerde false ise ad gir demesi mantıkldır doğru anladım mı ? Yani if ifadesindeki ad daha inpıtla bir şey girmeden önce o ad True yu mu temsil ediyor yani şöyle mi;
if not bool(ad) == True

En son demek istediğinizi tam anlayamadım, ama input fonksiyonu klavyede enter’e basılana kadar değer döndürmüyor. Yani şu yanlış bir düşünce:


Eğer hiçbir şey yazmadan enter’e basarsak ad değişkeni "" olur ve bu boş string’in bool değeri False, evet.

Evet. Eğer adımızı girmek yerine direkt enter’e basarsak da bu if çalışmış olacak, saçma olmuyor yani.

Evet çalışacak fakat ad girmedik yani false ; false olan Bool değeri nasıl True olan bloğa giriyor onu anlamadım.
if not ad : burada ad false . not gelince True oldu . true ise bu bloğa girecek ama true değil false


Yani o bloğa girmemeli

Ben nereyi anlayamadığınızı tam anlamadım ama sanırım kafanız karışmış, etkileşimli kabuktakiki şu örneği inceleyin istiyorsanız:

>>> ad = input()

>>> ad
''
>>> if ad:
...     print("isim girildi")
...
>>> if not ad:
...     print("isim girilmedi")
...
isim girilmedi
>>> bool(ad)
False
>>> not False
True
>>> not ad
True
1 Beğeni

Zaten o anlama geliyor. if bloğunun çalışması için içindeki ifadenin değeri True olmalı.

>>> if True:
...     print("if çalıştı")
...
if çalıştı
>>> if False:
...     print("if çalıştı")
...
>>> a = "."
>>> if a:
...     print("if çalıştı")
...
if çalıştı
>>> if bool(a):
...     print("if çalıştı")
...
if çalıştı
>>> if bool(a) == True:
...     print("if çalıştı")
...
if çalıştı
>>> bool(a)
True
>>> bool(a) == True
True
1 Beğeni

Surada cevaplamistim ve hatta biraz tartismistik:

Yani if hedeif bool(hede) ve not hodonot bool(hodo).

Linklenen belgelerden su da yanlis:

Bilgisayar biliminde her şeyin bir bool değeri vardır.

“Bilgisayar biliminde” degil “Python dilinde” olmasi lazim.

1 Beğeni