Programación Web y Scripting > Python

 Funciones booleanas

(1/2) > >>

neptun0:
Buenas otra vez chic@s de SoloCodigo ! Otra vez con mis preguntas basicas :P

Estoy viendo el tema de funciones booleanas y me surgio una duda. Tengo el siguiente codigo:


--- Código: Python ---import random def estaEntre(num_1,num_2,num_3):    return num_1 <= num_2 and num_2 <= num_3 var1 = random.randint(1,10)var2 = random.randint(1,10)var3 = random.randint(1,10) print var1print var2print var3 estaEntre(var1,var2,var3) raw_input("Pulse una tecla para salir ...") 
Mi pregunta es, al llamar a la funcion estaEntre(), no tendria que devolverme 1 en caso de que sea verdadera la sentencia luego del return ? No es una expresion booleana ?

Es algo que no termino de comprender, espero me puedan ayudar.

Un saludo y pido disculpas por estas dudas tan basicas ^_^

RadicalEd:
Sí, te está retornando un valor False, coloca:


--- Código: Python ---x = estaEntre(var1,var2,var3)print x 

neptun0:
Muchas gracias Edo ! Ya pude hacerlo funcionar correctamente ^_^

Dejo el problema en cuestion y como lo resolvi:


--- Citar ---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.
--- Fin de la cita ---


--- Código: Python ---# Funcion para comprobar si un numero se encuentra entre otros dos # Definicion de la funcion def estaEntre(x, y, z):    return y <= x <= z print "La funcion devuelve 1 en el caso de que el primer numero se encuentre entre medio de los otros dos"print "Ingrese los numeros: " # Llamada a la funcion dentro de un condicional.# Solicitud de datos if estaEntre(input("/"), input("/"), input("/")):    print 1else:    print 0 raw_input("Pulse ENTER para salir ...") 

Una pregunta mas :rolleyes: Los valores que devuelve la funcion son True o False, por lo que para que me devuelva 1 o 0 dependiendo el caso debo poner la funcion dentro de un condicional. Hay alguna manera, modificando algun archivo de configuracion o algo ( es algo que se me ocurrio, no se si en verdad se podra ) poder elegir que valores usa la funcion para retornar ? Osea, que devuelva 1 o 0 directamente ?

Y otra cosa, mas que nada pido alguna opinion. La forma en que escribo el codigo es legible ? Se que todavia son codigos bastante chicos y simples pero como recien estoy empezando con la programacion me gustaria ir tomando buenas costumbres desde ahora :P

Un saludo y gracias por adelantado ;)

rive08:
Buen día Neptun0,

La verdad, no tengo idea si existe alguna configuración que te permita modificar cómo trabajar con las funciones booleanas.

Lo que si podrías hacer, es modificar un poco tu código, para que la inteligencia la tenga la función, o sea, que  "estaEntre" devuelva diréctamente "1" o "0".
De esta manera, te ahorrás tener que poner el if estaEntre:... cada vez que quieras devolver "1" o "0"
Traducido a código, y modificando el código que posteaste quedaría algo parecido a esto:


--- Código: Python --- # # Funcion para comprobar si un numero se encuentra entre otros dos## # Definicion de la funcion#def estaEntre(x, y, z):   if (y <= x <= z):      resultado = 1   else:      resultado = 0   return resultado#print "La funcion devuelve 1 en el caso de que el primer numero se encuentre entre medio de los otros dos"print "Ingrese los numeros: "## # Llamada a la funcion dentro de un condicional.# # Solicitud de datos#consulta = estaEntre(input("/"), input("/"), input("/")) print consulta 
Espero te sirva. .

RadicalEd:
Para eso si te tocaría una desición, ya que solo sé que Python retorna True y False; para tú legibilidad de código te felicito, pocos programadores se preocupan por eso; algo ha tener en cuenta es que debes comentar muy bien tú código y si creas una función debes explicar para qué sirve, qué recibe y qué retorna, otra cosa a tener en cuenta es que si por algun motivo tienes una variable de esta forma:

--- Código: Python ---a += 1 #Le suma 1 a la variable "a" Eso se ve feo, si es muy lógico lo que hace la variable entonces no debes colocarlo, y si quieres ser especifico entonces podrías:

--- Código: Python ---a += 1 #Se va incrementando la variable para sumar al final de la lista o algo por el estilo, si quieres tener buenas prácticas a la hora de escribir código Python te recomiendo La guía de estilo Python

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa