5.4. Funciones booleanas

Las funciones pueden devolver valores booleanos, lo que a menudo es conveniente para ocultar complicadas comprobaciones dentro de funciones. Por ejemplo:

   1: def esDivisible(x, y):
   2:     if x % y == 0:
   3:         return 1 # it's  true
   4:     else:
   5:         return 0 # it's false

La funcion lleva por nombre esDivisible. Es habitual dar a las funciones booleanas nombres que suenan como preguntas s³/no. Devuelve 1 o 0 para indicar si la x es o no divisibelo por y.


Podemos reducir el tama~no de la funcion aprovechandonos del hecho de que la sentencia condicional que hay despues del if es en s³ misma una expresión booleana. Podemos devolverla directamente, evitando a la vez la sentencia if:




   1: def esDivisible(x, y):
   2:     return x % y == 0

La siguiente sesion muestra a la nueva funcion en acción:




   1: >>> esDivisible(6, 4)
   2: 0
   3: >>> esDivisible(6, 3)
   4: 1

El uso mas comun para las funciones booleanas es dentro de sentencias condicionales:




   1: if esDivisible(x, y):
   2:     print "x es divisible entre y"
   3: else:
   4:     print "x no es divisible entre y"

Puede parecer tentador escribir algo como:




   1: if esDivisible(x, y) == 1:

Pero la comparacion extra es innecesaria.


Como actividad, escriba una funcion estaEntre(x, y, z) que devuelva 1 en caso de que y <= x <= z y que devuelva 0 en cualquier otro caso.

0