Kurzusok
/
Python
Python
/
Tanterv
/
Boolean-ok
Bo

Boolean-ok ebben a kurzusban: Python

70 feladat

A(z) Boolean-ok fogalomról

A Python az igaz és hamis értékeket a bool típussal ábrázolja, amely az int egy altípusa. Ebben a típusban csak két Boolean érték van: a True és a False. Ezeket az értékeket hozzárendelheted egy változóhoz, és kombinálhatod a Boolean operátorokkal (and, or, not):

>>> true_variable = True and True
>>> false_variable = True and False

>>> true_variable = False or True
>>> false_variable = False or False

>>> true_variable = not False
>>> false_variable = not True

A Boolean operátorok rövidzárásos kiértékelést használnak, ami azt jelenti, hogy az operátor jobb oldalán álló kifejezés csak akkor értékelődik ki, ha szükséges.

Mindegyik operátornak más a precedenciája: a not kiértékelése megelőzi az and és az or kiértékelését. Zárójelekkel elérheted, hogy a kifejezés egyik része a többiek előtt értékelődjön ki:

>>> not True and True
False

>>> not (True and False)
True

A boolean operators mindegyike alacsonyabb precedenciájúnak számít, mint a Python comparison operators operátorai, például a ==, a >, a <, az is és az is not.

Automatikus típuskonverzió és igazságérték

A bool függvény (bool()) bármely objektumot Boolean értékké alakít. Alapértelmezés szerint minden objektum True-t ad vissza, kivéve, ha úgy definiálták, hogy False-t adjon vissza.

Néhány built-ins definíció szerint mindig False-nak számít:

  • a None és a False konstans
  • bármely numerikus típus nullája (int, float, complex, decimal vagy fraction)
  • üres szekvenciák és kollekciók (str, list, set, tuple, dict, range(0))
>>> bool(None)
False

>>> bool(1)
True

>>> bool(0)
False

>>> bool([1,2,3])
True

>>> bool([])
False

>>> bool({"Pig" : 1, "Cow": 3})
True

>>> bool({})
False

Amikor egy objektum Boolean kontextusba kerül, a bool() használatával átlátszó módon igazként vagy hamisként értékelődik ki:

>>> a = "is this true?"
>>> b = []

# This will print "True", as a non-empty string is considered a "truthy" value
>>> if a:
...  print("True")

# This will print "False", as an empty list is considered a "falsey" value
>>> if not b:
...   print("False")

Az osztályok meghatározhatják, hogyan értékelődjenek ki igaznak számító helyzetekben, ha felülírják és implementálják a __bool__() metódust és/vagy a __len__() metódust.

Hogyan működnek a Boolean értékek a háttérben

A bool típus az int egy altípusaként van implementálva. Ez azt jelenti, hogy a True numerikusan egyenlő az 1-gyel, a False pedig numerikusan egyenlő a 0-val. Ez akkor figyelhető meg, amikor egy egyenlőségoperátorral hasonlítod össze őket:

>>> 1 == True
True

>>> 0 == False
True

A bools azonban továbbra is különböznek az ints-től, amint azt az identitásoperátorral, az is-szel való összehasonlítás is mutatja:

>>> 1 is True
False

>>> 0 is False
False

Megjegyzés: a Python 3.8-as és újabb verzióiban figyelmeztetést vált ki, ha a is bal oldalán literált (például 1, '', [] vagy {}) használsz.

Python-antimintának számít, ha egy Boolean változót az egyenlőségoperátorral hasonlítasz össze a True vagy a False értékkel. Helyette az is identitásoperátort érdemes használni:


>>> flag = True

# Not "Pythonic"
>>> if flag == True:
...    print("This works, but it's not considered Pythonic.")

# A better way
>>> if flag:
...    print("Pythonistas prefer this pattern as more Pythonic.")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Boolean-ok fogalmat

A gyakorlás zárolva

Oldj fel még 2 feladatot, hogy gyakorolhasd a(z) Boolean-ok fogalmat