AnteriorPosterior

14 - Comentarios, booleanos

Por: Nacho Cabanes
Actualizado: 16-08-2020 12:07
Tiempo de lectura estimado: 9 min.

 

Versión en video (5:54 min):

Fund.Prog con Python 2020

14 - Comentarios, booleanos

En esta entrega vamos a ver dos conceptos que son habituales en muchos lenguajes de programación. Uno es el de los comentarios, y vamos a hablar también de los tipos de datos "booleanos". Para estos ejemplos no necesitaremos instalar nada, podemos hacerlo en un entorno online.

¿Cual es la idea del comentario? Pues que yo puedo hacer una frase dentro de mi programa que no se analice, que sea solo una aclaración para mí. Esa frase deberá empezar con una almohadilla, el símbolo de número, el símbolo de "hash", es decir, con este símbolo: #.

Lo que pongo a continuación es algo que Python va a ignorar, es como si yo no hubiera escrito nada, con lo cual yo podría poner, por ejemplo, programa que calcula el máximo común divisor de dos números. Es muy habitual que un programa empiece así, que empiece con un comentario que sirva para recordarnos cuál es el cometido de ese programa, que solo con mirar la primera línea sepamos qué es lo que hacía ese programa, que no sea necesario leerlo entero, de arriba a abajo.

# Programa que calcula el máximo común divisor de dos números

También es muy habitual un segundo, una segunda línea, a veces una primera línea, que lo que indique sea el nombre del autor, especialmente si es un ejercicio que tenemos que entregar y que nos tienen que corregir.

# Programa que calcula el máximo común divisor de dos números
# Nacho Cabanes, 2020

Por lo demás, dentro de un programa, los comentarios los usaremos para explicar qué algoritmo, qué idea vamos a implementar, pero no para detalles que sean evidentes. Por ejemplo. No voy a poner esto, no voy a poner "doy a n el valor 2". Y debajo "n = 2".

# doy a n el valor 2
n = 2

Este comentario es claramente redundante, cualquier persona que vea en "n = 2" sabe que a la variable "n" le estoy dando el valor 2; en cambio, sí que es mucho más razonable hacer cosas como "usaré el algoritmo de Euclides", de modo que si quien ve mi programa dice "no entiendo que está haciendo aquí para resolver este..." Por ejemplo, "para calcular el máximo común divisor", diga "Algoritmo de Euclides, ah!" Pues voy a la Wikipedia, voy a donde sea y lo compruebo.

# Algoritmo de Euclides

Entonces los comentarios tienen básicamente que decir cuál es la idea lógica, grosso modo, del programa, a grandes rasgos. No tienen que entrar en detalles pequeños que sean evidentes solo mirando la línea siguiente.

El segundo detalle importante de esta sesión es hablar de un tipo de datos que no conocíamos, que son los "booleanos". Los booleanos son datos que representarán valores de verdad, es decir, si algo es verdadero o es falso. Por ejemplo, hasta ahora habíamos manejado números, yo podía poner "print(2)" y me aparecía un dos en pantalla, pero también puedo hacer cosas como éstas: decir "dime que es el tipo de datos al que corresponde 2.

print(2)
print( type(2) )

Si lanzamos el programa, veremos que aparece primero ese 2 y luego nos dice que eso es de tipo "int", es un número entero.

2
<class 'int'>

Vamos a repetir esa misma idea. Ahora voy a poner que me diga 2.5 y que me diga cuál es el tipo de 2.5. Ya sabes que este 2.5 aquí debe aparecer con punto, pero quizás en el panel lateral, en la pantalla de ejecución, aparezca con una coma en vez de con un punto, según tu configuración regional. Es normal, pero dentro del programa deberá ser un punto.

print(2)
print( type(2) )
print( 2.5 )
print( type(2.5) )

Si yo vuelvo a lanzar el programa, ahora me dice que 2,5 es de la clase float.

2
<class 'int'>
2.5
<class 'float'>

Por eso, cuando el usuario podía introducir datos con decimales, lo que hacíamos es convertir, en vez de a int, a float.

Hemos hablado también de listas, pero dentro de los datos más o menos simples nos falta un importante, uno, que existe en muchos lenguajes de programación, que es el resultado de una comparación.

Por ejemplo, yo puedo decir que me diga si tres es mayor que dos. Y luego que me diga el tipo de esa comparación, de si tres es mayor que dos.

print(2)
print( type(2) )
print( 2.5 )
print( type(2.5) )
print( 3 > 2 )
print( type( 3 > 2 ) )

Si lanzo ahora el programa, además de ese "int"y de ese "float", me aparece también que "3 mayor que 2" es verdad, lo que se refleja con la palabra "True" y que eso pertenece a la clase "bool".

2
<class 'int'>
2.5
<class 'float'>
True
<class 'bool'>

Es un dato "booleano", insisto, un dato de verdad, un dato "verdadero" o "falso".

¿Tiene algún uso real eso de los booleanos?. Pues la verdad es que sí, la verdad es que en programas más o menos complicado, cuando las condiciones son largas, viene bien el poder poner palabras en vez de una condición larga.

¿Cómo se hace eso? Pues, por ejemplo, en un juego puedo decir que me quedan dos vidas y podría decir que la partida se termina cuando las vidas son menor o igual que cero.

vidas = 2
partidaTerminada = vidas <= 0

Automáticamente, desde aquí, Como las vidas no son menor o igual que cero, partidaTerminada, por ahora es falso. Si las vidas fueran cero, en ese momento partidaTerminada pasaría a ser "True", pasaría a ser verdad.

vidas = 0
partidaTerminada = vidas <= 0

Con lo cual yo podría hacer cosas como decir, "si ocurre que la partida ya ha terminado" quiero que, por ejemplo, en este caso simplemente quiero que me escriba al valor de partidaTerminada.

vidas = 0
partidaTerminada = vidas <= 0
if partidaTerminada:
    print(partidaTerminada)

Pero la idea es esa, la idea está en que estoy cambiando condiciones que muchas veces no serán tan sencillas como ésta por palabras en lenguaje natural, esa es la intencionalidad de usar booleanos.

Vamos a comprobar que el programa funciona y que realmente nos escribe un "True" de que como ahora las vidas son cero, partidaTerminada sí que es "True", porque sí que hay cero o menos vidas:

True

Ejercicio propuesto 14.1. Pide al usuario dos números enteros, y da el valor True a una variable booleana llamada "ambosPares" en caso de que las dos sean pares, o el valor False en caso contrario. El programa debe comenzar con un comentario que diga de qué trata y otro que diga tu nombre.

66 visitas desde el 15-08-2020

AnteriorPosterior