Booleans

Tipus i valors

Operadors relacionals

  • Operador relacional: igualtat (==), desigualtat (!=), comparació o ordre (<, <=, >, >=)

  • Tenen dos operands (binaris) i s’escriuen entre ells (infix)

  • Els operands són nombres (de moment)

  • Ordre d’avaluació:

    • Són menys prioritaris que la suma i la resta

    • L’associativitat és d’esquerra a dreta

Operadors booleans

  • Operador booleà o lògic: and, or i not

  • Semàntica (significat) dels operadors lògics

    • A and B: True si tant A com B són True i False en qualsevol altre cas

    • A or B: False si tant A com B són False i True en qualsevol altre cas

    • not A: True si A és False i False si A és True

  • Taula de veritat

    a

    b

    a and b

    a or b

    not a

    False

    False

    False

    False

    True

    False

    True

    False

    True

    True

    False

    False

    True

    False

    True

    True

    True

    True

  • Expressió booleana: tota expressió que s’avalua a un objecte booleà.

Lleis i equivalències lògiques

Avaluació amb curtcircuit

  • Mètode d'avaluació dels operadors and i or

  • and amb curtcircuit

    1. s’avalua l’operand de l’esquerra

    2. si és False, retorna aquest valor (sense avaluar l’operand de la dreta)

    3. altrament, retorna el resultat d’avaluar l’operand de la dreta

  • or amb curtcircuit

    1. s’avalua l’operand de l’esquerra

    2. si és True, retorna aquest valor (sense avaluar l’operand de la dreta)

    3. altrament, retorna el resultat d’avaluar l’operand de la dreta

  • Vegeu booleans a python:reference/index

Igualtat en nombres en coma flotant

>>> x = 0.1*3
>>> y = 0.3
>>> x == y
False
>>> epsilon = 1e-7
>>> abs(x-y) < epsilon
True
  • Cal decidir una tolerància \(\epsilon\).

Funcions booleanes

Exercicis