Python para Ciencias de la Tierra

Capítulo 2: Conceptos Básicos de Programación en Python (Pt. 1)

Damian
20 min readMar 1, 2022

--

Índice del curso
<<
Capítulo 1: Descubriendo Python

2.1 Variables

Tu primer programa

De forma muy básica, podemos definir un programa como una serie finita de declaraciones o sentencias diseñadas para hacer una tarea específica. Cada sentencia equivale básicamente a una línea de código.

Para iniciar las prácticas del curso, en el explorador de archivos de windows o similar busca la ubicación donde crearás la carpeta en la que guardarás todos los ejemplos, ejercicios y proyectos que se verán en este curso. Puede ser en Documentos, y crear la carpeta que se llamará como quieras, pero que no tenga espacios ni acentos. Por ejemplo: Curso_Python_CienciasdelaTierra; o Micurso_Python; o Paaprender_Python. Insisto que es como desees, pero no debe tener espacios ni acentos.

El programa más sencillo que se puede hacer es el famoso ‘Hola Mundo’ de la programación. Es un programa inútil en realidad, pero permite familiarizarse con la ejecución de una sentencia. Para ello es necesario que abras Jupyter. Puedes hacerlo desde Anaconda, o desde la carpeta creada en tu menú de inicio. Al abrirlo te encontrarás con la interfaz, la cual es un explorador de archivos, que ya hemos visto en la sesión pasada. Con doble clic entra a las carpetas, y dirígete a la que acabas de crear para este curso. Estando dentro de esa carpeta vacía, selecciona el botón New para abrir la opción de Python 3, donde das clic para generar un nuevo cuaderno, donde verás una celda (figura 2.1).

En la parte superior izquierda, a la derecha del logo de Jupyter, dice Untitled. Al darle clic a esa palabra te permitirá cambiar el nombre de tu cuaderno. Inmediatamente abajo hay una serie de menús. No es necesario que ahora sepas qué funcionalidades tienen, pero usaremos varias de ellas conforme adquiramos más habilidades para programar. Luego nos encontramos con una serie de botones, que por su utilidad los comento en la figura 2.2.

Haciendo una mención aparte, en este renglón hay un recuadro que dice code. En él se despliegan opciones para decidir en qué ocuparemos la celda. Si elegimos code, la celda se habilitará para escribir código. Si elegimos markdown, la celda se habilitará para escribir texto con comandos de html y ecuaciones con comandos de LaTex. Por ahora sólo es necesario que reconozcas estas dos opciones, ya que serán las utilizadas en el curso.

Finalmente está la única celda en donde escribiremos nuestro programa. Hay una barra vertical izquierda de color azul. Esta barra indica que la celda está seleccionada. Si damos clic dentro de la celda, la barra cambia a color verde, lo que indica que ya podemos escribir código o texto. Para seleccionar de nuevo una celda, hay que dar clic a un costado izquierdo de ella. Así es como reconocemos cuando una celda está seleccionada o no. Para seleccionar varias celdas basta con tener una seleccionada, y con Shift, oprimir las teclas hacia arriba o hacia bajo. Se pintarán de azul las celdas seleccionadas.

Figura 2.1 Vista inicial de un cuaderno en Jupyter.
Figura 2.2 Descripción de los botones con las funciones más utilizadas en un proyecto. Aprender los comandos de teclado te permitirá trabajar de forma más rápida.

Ahora sí, podemos iniciar nuestro programa. El comando estelar aquí será print, el cual como lo indica su nombre, imprime en pantalla lo que haya dentro de los paréntesis, en este caso texto, que tenga frente a él. En la celda escribimos lo siguiente.

print('Hola Mundo')

Al ejecutarlo (revisa la lista de botones líneas arriba), se muestra debajo de la celda el texto Hola Mundo. ¡Y ahí está!, tu primer programa en Python.

Figura 2.3 Impresión del resultado bajo la celda. Se crea una nueva celda en automático.

¿Qué podemos observar en la figura 2.3? Primero nota que seguido del print se abren paréntesis, dentro de los cuales se escribe el texto a imprimir dentro de comillas simples. Las comillas para delimitar texto, y sólo texto, pueden ser simples o dobles (inténtalo). Lo segundo que debes notar es lo colorido que está el código. De verde está el comando, y de rojo el texto dentro de las comillas. Si en lugar de copiar y pegar la línea lo escribiste por tu cuenta, habrás notado que al escribir la comilla, se habilita el rojo para el texto que escribes, hasta que se cierra la comilla.

En general muchas IDEs asignan colores al código, pero cada uno tiene su propia paleta de colores, por lo que si usas otra IDE, seguro algunos comandos tendrán otro color. Al final sólo es para que identifiques el tipo de comando que escribes o el tipo de variable que usas.

Lo tercero a notar es algo de lo que ya te he platicado: Python es un intérprete, por lo que una sola línea puede ejecutarse y dar una respuesta. No tiene una sintaxis rigurosa como otros lenguajes. Por poner un ejemplo, a continuación pongo el código requerido para imprimir el mismo resultado (Hola Mundo), pero con un compilador muy famoso: C++.

#include <iostream>
using namespace std;
int main()
{
cout<<"Hola Mundo";
return 0;
}

¿Notas la diferencia? No entraremos en detalle de lo que cada línea significa, pero es claro que un intérprete como Python es mucho más amigable e intuitivo para aprendices y programadores en general, sin embargo no olvidemos que muchas de sus paqueterías han sido escritas en alguna versión del lenguaje C.

En este punto, Python también puede servirte como una calculadora de bolsillo, ya que bien puedes escribir una operación aritmética básica como la suma 10 + 15. Al ejecutar se muestra el resultado. Nota una diferencia en la impresión, ahora aparece en el cuadro de resultado Out[2]:. Esto es porque al no haber comando que ordene imprimir, la celda funcionó como una consola de comandos, en vez de un visualizador de resultados. Haz la prueba y escribe esa suma dentro de un print(). Será más claro lo que te comento.

Hasta este punto puedes ver que además cada celda se enumera según el orden en que se han ejecutado. Esto es de gran utilidad para no perdernos en nuestro propio cuaderno conforme crezca (figura 2.4). Mantén abierto el cuaderno, porque seguiremos trabajando con él en esta sesión.

Figura 2.4 Las celdas son enumeradas según el orden en el que se ejecutan.

Valores, Tipos de Valores y Variables

Un valor es el elemento más básico que utiliza un programa. Puede ser un número como una letra o una palabra. Hasta ahora has trabajado con algunos valores. “Hola Mundo” es un valor, los números 10 y 15 son valores que generaron uno nuevo, el 25.

Esos elementos son valores, pero de diferentes tipos. “Hola Mundo” es una cadena, llamada así porque es una ‘cadena’ de letras. En cambio los números 10, 15 y 25 son valores de tipo numérico, particularmente enteros.

El tipo de valor, o tipo de dato, es la forma en la que los lenguajes de alto nivel le dicen a la computadora cómo distinguir los valores entre sí, de acuerdo con lo que deseemos hacer con ellos. Si deseamos hacer operaciones matemáticas, los tipos numéricos serán los adecuados, pero si deseamos manipular información escrita, las cadenas resultan idóneas. Existen diversos tipos de datos en Python. Sin embargo, los básicos con los que puedes empezar a familiarizarte son los que se muestran en la tabla 2.1, la cual comentaremos a partir del siguiente párrafo.

Tabla 2.1 Tipos de datos básicos en Python.

En la columna de ‘Ejemplos’ se muestran formas en las que se pueden asignar los valores a una variable. Es fácil de entender el tipo de dato entero. Pero observa el último ejemplo del tipo flotante, donde hay un 5 aparentemente entero, pero el hecho que tenga un punto lo convierte en decimal, aunque no se especifique el 0 a la derecha del punto decimal. Los ejemplos del tipo complejo serán más claros poco más adelante que veamos operaciones con variables. Sólo comento que la j es la unidad imaginaria.

En los ejemplos del tipo de dato cadena observa que los números se convierten en texto al ponerlos entre comillas, por lo que no se podrá operar con ellos numéricamente. El tipo lógico Booleano sólo admite dos valores: True (verdadero) o False (falso), útiles para comprobar la validez lógica de una sentencia. Siempre se escriben con mayúscula para poder utilizarlos.

La última columna se llama ‘Palabra Reservada’ porque en Python, como en otros lenguajes de programación, existen palabras asociadas a comandos, sentencias, entre otros, que no se deben utilizar para otros fines. En inglés son llamadas keywords. Las palabras int, float, entre otras más, son palabras reservadas para que Python pueda trabajar. Una forma de identificarlas en Jupyter es mediante el color que toma: verde. De hecho, ya utilizaste una palabra reservada: print. Y si bien recuerdas, se tornó verde al escribirse.

Para poder trabajar con un dato adecuadamente, es decir, sin tener que estar escribiendo el valor cada que lo tengamos que utilizar, evitando así errores, lo asignamos a una variable. Una variable es el nombre con el cual nos referimos a un valor. Mediante una sentencia de asignación es como damos un valor a una variable:

mensaje = 'Este curso está genial.'
n = 23
e = 2.718281828

El primer renglón se puede leer como ‘a la variable mensaje se le asigna el texto Este curso está genial.’. El segundo renglón ‘a la variable n se le asigna el número entero 23’; y así con cualquier asignación que hagamos. De aquí en adelante en el código puedes decir que n es entero, e es flotante y mensaje es una cadena, dejando claro el tipo de dato que se le asignó a la variable.

Nombre de variables
Los nombres de las variables son un tema importante a la hora de programar. Mientras más grande sea el código, más importante es cómo nombres cada variable. Comúnmente los nombres se eligen de forma que tengan sentido y documenten para qué se usa esa variable.

Observaciones sobre los nombres de las variables
Pueden tener letras, números y al menos un guion bajo, pero no está permitido que empiecen con números. El guion bajo generalmente se usa para separar palabras, ya que el tamaño del nombre puede ser grande, es decir, tener 40 o más caracteres. Se puede empezar con guion bajo, pero no es recomendable, ya que esta notación es utilizada para asignarse a las clases. Las letras pueden ser mayúsculas o minúsculas, pero se recomienda hacer mayor uso de las minúsculas. Las variables tampoco pueden tener de nombre una palabra reservada de Python. Y de preferencia nunca pongas acentos en los nombres, aunque Python te lo permita. Más adelante que cuentes con más conocimiento retomaremos el tema de nombrar variables.

Sentencias
Una sentencia es la unidad básica de código que Python puede ejecutar. Existen sentencias que generan una salida, es decir, un resultado visual en el monitor. Asignar valores a una variable mediante el símbolo = es un ejemplo de sentencia que no genera una salida. En cambio, la sentencia print sí genera una salida, siempre que se le indique qué imprimir.

Operaciones entre variables

Se llama operador al símbolo especial utilizado para la realización de una operación, como la suma o la multiplicación. Los valores a los que se les aplica un operador se les llama operandos.

Los operadores +, -, *, / son para sumar, restar, multiplicar y dividir respectivamente. La potencia y la raíz pueden obtenerse con el mismo operador **. Python sigue la jerarquía de operaciones de acuerdo con los principios matemáticos. En caso de haber paréntesis, resuelve primero lo que hay dentro de ellos. Sólo se utilizan paréntesis para agrupar términos. Las llaves ‘{}’ y los corchetes ‘[]’ nunca se utilizan dentro de estas operaciones; tienen otras utilidades.

Para ejemplificar el uso de las operaciones con variables, trabajaremos con el cuaderno ya abierto, tal como se quedó párrafos arriba (figura 2.4).

Selecciona la celda dando clic con el cursor dentro de ella. Recuerda que debe estar azul la barra vertical. Da click en el botón desplegable code para elegir la opción markdown. Se habrá quitado la leyenda In[ ]:. Esto es porque es una celda habilitada para escribir texto libremente. Escribe lo siguiente:

# Operaciones entre Variables

Nota el espacio que debe haber entre el # y la primera letra. El texto se pintará de azul marino y tendrá un tamaño mayor, como en la imagen.

Figura 2.5 Vista previa a ejecutar un texto en formato de título. Si omites el espacio entre el # y la primera letra, no se habilita el formato.

‘Ejecútala’, y se mostrará el texto como título. A pesar de ser una celda para escribir texto, también hay comandos que permiten dar estilo a lo que escribas ahí. El símbolo # permite dar al texto un estilo de título o subtítulo (figura 2.6).

Figura 2.6 Muestra de los niveles de títulos que puede haber en las notas de Jupyter. Se escriben tantos signos numerales (#) como el nivel que se desee tener. El nivel máximo es seis.

Numéricos
Para iniciar, escribe las siguientes líneas, donde se crean las variables a utilizar.

a = 5
b = -2
c = 4.6

La suma, la resta y la multiplicación de dos enteros, generan un nuevo entero.

suma = a + b
resta = a - b
producto = a * b

Al ejecutar estas líneas, no se genera un sólo resultado visual, pero en las nuevas variables se han guardado los resultados. Para verlos, tienes que utilizar el comando print, o sólo ejecutar la variable en una nueva celda (figura 2.7).

Por otra parte, la división entre dos enteros genera un valor flotante.

cociente = a/b

¿Cómo sabemos qué tipo de dato estamos generando? El comando type permite saber eso. Basta con poner entre paréntesis la variable de la que queramos saber el tipo.

type(cociente)

Nuestro cuaderno ahora se ve similar a la siguiente imagen.

Figura 2.7 Hay dos formas de imprimir una variable, donde el uso de ‘print’ es el más conveniente. Con type podemos saber el tipo de dato de la variable.

La otra forma, menos sofisticada, es sólo imprimir la variable cociente. Se muestra como resultado -2.5. Esto ya nos dice que es flotante. Pero no olvides el comando type, ya que habrá ocasiones en que no sabrás qué es lo que se generó. En serio, créeme.

De forma similar, estas cuatro operaciones se pueden efectuar entre flotantes, generando resultados flotantes. Y si la operación es entre un entero y un flotante, el resultado es flotante, como sucede en la resta y el producto de abajo (figura 2.8).

d = cociente
suma_float = c + d
resta_float = a - c
producto_float = b*d

Nota en el primer renglón que una variable existente se puede asignar a una nueva. También, como lo vimos al inicio de esta sesión, puedes ejecutar la operación sin asignar el resultado a una variable, y se imprime el número nuevo bajo la celda.

Figura 2.8 El producto de un valor entero y un valor flotante genera un valor flotante. Lo mismo sucede con las otras operaciones, como se aprecia con la resta.

Las raíces y las potencias se pueden realizar con **, el cual respeta las leyes de los exponentes. Como ejemplo, observa la siguiente imagen.

Figura 2.9 El operador ** permite obtener potencias y raíces de números enteros y flotantes.

Es poco común tener que utilizar números complejos. De hecho hay áreas de Ciencias de la Tierra que pueden existir en armonía sin tener que acudir a ellos. Pero si alguna vez haces matemáticas un poco extrañas (sí, me refiero a ti que te dedicas a la Geofísica), es necesario mostrar sus operaciones básicas.

Hay dos formas de declarar un valor complejo, siempre respetando el orden de la parte real y la parte imaginaria:

c1 = complex(5, -6)
c2 = 3 - 2j

En el primer renglón se usa complex para formar un número complejo. El primer término es el real, y el segundo es el imaginario. La segunda forma es más intuitiva, donde para muchos les será obvio, y para otros no, pero la j es la unidad imaginaria i.

Las seis operaciones vistas hasta ahora se pueden realizar entre los números complejos. Observa los resultados que obtendrías en caso de probarlo.

Figura 2.10 Las operaciones entre números complejos, incluyendo potencia y raíz, son igual de intuitivas que con números reales.

Hasta aquí ya puedes resolver operaciones más extensas en python, como la distancia entre dos puntos en el espacio.

De asignar los valores x1 = 3, y1 = 4, z1 = 5; x2 = -1, y2 = 5, z2 = -3, la expresión queda:

d = ((x2-x1)**2+(y2-y1)**2+(z2-z1)**2)**0.5
print(d)

El resultado es 9. Escribe esas líneas en una celda de tu cuaderno. Sólo recuerda que primero debes asignar los valores a las variables.

Queda mencionar otras dos operaciones, las cuales pueden considerarse ligadas entre sí. Una es la división entera, la cual genera como resultado la parte entera del cociente de dos números cualesquiera. El operador es la doble diagonal: //

10//4

Esta operación mostrará como salida un 2, porque es el cociente entero de 10 entre 4. Si el numerador es menor que el denominador, entonces el resultado será 0, porque no hay parte entera.

El otro operador es el módulo, en el sentido de la aritmética modular, y no debe confundirse con la norma o el valor absoluto. El resultado es el residuo entero de la división de dos números. Aunque admite valores flotantes, esta operación está pensada para números enteros, y es mejor utilizarla con ellos. Su símbolo es %.

10%6

Esta línea dará como resultado un 4, porque tras dividir 10 entre 6, el cociente es 1, con un residuo de 4. Te invito a practicar un poco con estas operaciones, para que te familiarices con sus resultados.

Booleanos
Una expresión booleana es aquélla que sólo admite verdadero o falso como respuesta, es decir, True o False para python. Permite considerar preguntas como ‘¿el 5 es mayor que 3?’ o ‘¿esta roca es sedimentaria?’, donde sólo admiten un sí o un no como respuesta.

Existen operadores de comparación, los cuales permiten evaluar esta clase de sentencias.

Tabla 2.2 Lista de las comparaciones lógicas en Python

Es muy probable que estés familiarizado con éstos, pero es necesario notar la diferencia entre el símbolo de asignación igual (=) y el símbolo de comparación de igualdad (==). No existen los símbolos =< y => en Python para comparar. Y los comandos is e is not sólo se deben usar en la comparación de variables.

Si escribimos en una celda la siguiente línea (recuerda que a = 5):

a == 5

Tendrás como resultado que sí son iguales, es decir, un True. Esta línea se puede leer como ‘¿a es igual que 5?’.

a == 7

Ahora estamos comparando el 5 con el 7, y obtienes como resultado un rotundo False, ya que no son iguales estos valores.

Por otro lado, si escribes a==5.0 obtienes como respuesta True, indicando que python también reconoce el valor numérico sin importar que uno sea entero y otro sea flotante. Pero en general, se debe tener cuidado a la hora de trabajar con comparaciones lógicas, y en lo posible hacerlas entre mismos tipos de datos.

Para más de una sentencia lógica que se tenga que evaluar, existen los operadores lógicos AND, OR y NOT. Estos se leen como su sentido en inglés: Y, O y NO. Excepto por NOT, son conectores que permiten evaluar más de una sentencia a la vez. Por ejemplo:

a > 3 and a < 7

Esta línea dará como respuesta True, porque en efecto a, cuyo valor es 5, es mayor que 3 y menor que 7. Pero si escribimos:

a > 3 and b > 7

Sabiendo que b = -2, el intérprete dará como resultado False, porque la segunda de las condiciones lógicas no se cumple. Se deben cumplir ambas condiciones para que sea verdadera toda la sentencia lógica.

En cambio, con OR sólo basta que al menos una de las dos condiciones sea verdadera para considerar verdadera toda la sentencia lógica.

a > 3 or b > 7

Esta sentencia da como resultado True. El conector OR considera como cierta toda la sentencia cuando una de las dos, o ambas condiciones son verdaderas.

Por último, el conector NOT es la negación de una condición. En otras palabras, invierte el resultado lógico.

not a > 3

El resultado es False, porque la condición es verdadera, a es mayor que 3.

Tu cuaderno en esta sección de ejemplos lógicos se debe ver similar a lo mostrado en la siguiente figura.

Figura 2.11 Sentencias lógicas en Python.

Para entender mejor cómo funcionan estos operadores lógicos, puedes estudiar la tabla 2.3 donde se muestra cómo interactúan con las sentencias lógicas, donde X y Y son condiciones lógicas.

Tabla 2.3 Resultados de las operaciones lógicas. Nota que NOT sólo requiere de una condición para operar.

Con estos operadores se pueden construir sentencias lógicas tan grandes como se requiera. Para ello se deben agregar paréntesis para definir el orden o la prioridad en que se deben evaluar.

Notación Científica
La notación científica también es válida en python. No es un tipo de dato, ya que se registra como flotante. Pero es una forma de asignar valores muy chicos o muy grandes, sin tener que escribir todas las cifras. Esto se logra con la letra e, la cual se debe entender como exponente y no como el número de Euler e.

e1 = 5e9
e2 = 3e-7

Imprime estas dos variables usando el mismo print, pero separadas por una coma:

print(e1, e2)

Verás el número grande con todas las cifras, y el decimal en la misma notación, pero sigue siendo flotante. Sólo es una forma de asignar variables en notación científica sin cometer errores.

Por último, las cadenas también tienes diversas operaciones, de las cuales hablaremos en el siguiente tema, donde además te contaré sobre las listas y otras estructuras de datos. Esto porque cadenas y listas tienen una manipulación análoga.

Comentarios

Python, como cualquier otro lenguaje de programación, permite agregar en su código comentarios que no interpreta el lenguaje. Los comentarios están pensados para ser leídos por otras personas, incluso para el mismo programador. Es decir, son notas que describen lo que hace una línea o una sección del código, muy útiles para entender lo que cada apartado hace, más cuando ha pasado el tiempo sin actualizarlo. Agregar comentarios es de las mejores formas de documentar un programa.

Una forma de habilitarlos es escribir el símbolo numeral # al inicio de la nota que se planea escribir. Todo lo que esté escrito adelante del #, será ignorado por el intérprete, además de representarlo en itálicas de color.

#Esto es un comentario
print('Hola Mundo') #Esto es otro comentario

Y la otra forma, pensada para comentarios más largos, como un párrafo, es mediante tres comillas dobles consecutivas, para iniciar el párrafo, y tres comillas dobles para terminarlo. El texto se verá rojo.

"""
Esto es un comentario más extenso.
Será muy útil esta forma de comentar cuando veamos sobre buenas
prácticas de programación, y el tema de funciones.
"""

Algunas observaciones sobre la sintaxis en Python

La sintaxis, sin ser rigurosos, es la forma en que se debe escribir el código para que sea correctamente interpretado por el lenguaje. Así un print ‘hola mundo’ sin los parétesis es una sintaxis incorrecta para Python.

Python no es muy estricto en su sintaxis. A python no le preocupa que haya espacios entre las operaciones y asignaciones. Le da igual cualquiera de las siguientes líneas:

a1=5*2
a2 = 5 * 2
a3 = 5 * 2

Por cuestiones estéticas, sólo la suma y la resta suelen estar espaciadas. Las demás operaciones suelen siempre estar juntas a los valores.

Para imprimir sucede algo similar:

print(a1,a2,a3)
print(a1, a2, a3)

Pero debes tener el cuidado de agregar espacio después de la coma, y no antes.

También puedes asignar a varias variables un mismo valor en la misma sentencia.

a = b = c = d = 3
print(a, b, c, d)

De imprimir esta línea se verán cuatro veces el tres escrito, porque las cuatro variables ahora tienen el valor de 3. De forma similar, puedes asignar diversas variables con distintos valores en un mismo renglón con la siguiente sintaxis:

a, b, c, d = 2, 3, 5, 7

Observa que se debe respetar el orden en que se escriben variables y asignan valores.

También observa que intencionalmente he utilizado nombres de variables que ya habían sido utilizados. ¿Para qué? Para que notes que las variables previamente creadas pueden ser sobreescritas, incluso cambiar de tipo de dato en esa nueva asignación. Recuerda que c era flotante, y ahora le asigné un valor entero. Esta característica es parte del tipado dinámico que ya hablamos la sesión anterior; y resulta muy útil para la evolución de un programa sin saturar la memoria del cuaderno con variables que en ese punto son inútiles.

Python también es sensible a las mayúsculas y minúsculas. Para python la variable X1 es diferente a las variable x1. Ya hemos platicado que se recomienda trabajar siempre con minúsculas, pero tal vez en la manipulación de variables físicas sea necesario agregar alguna mayúscula, por lo que debes cuidar ese detalle.

Python tampoco requiere un comando para terminar una línea, como el punto y coma (;), cosa que causa un dolor de cabeza a quienes programan en lenguajes que sí lo requieren. Pero admite su uso si se quiere agregar más de una sentencia en una misma línea, como si de varias líneas se tratara:

y1 = 5; y2 = 7; y3 = y1 + y2; print(y3)

Así puedes en una o pocas líneas ejecutar sentencias cortas o hacer la asignación de variables, por ejemplo. Pero no es recomendable usar el punto y coma en sentencia más extensas.

De hecho, el número máximo de caracteres recomendable en cada línea, incluyendo espacios y símbolos, es de 80. Hay lenguajes que no admiten más de ese número de caracteres, python te deja tener los que desees, pero no pases de 80, de preferencia. ¿Pero si ya no cabe mi sentencia en un renglón? Basta con iniciar la sentencia abriendo paréntesis, pasar al siguiente renglón (se pondrá una sangría en automático), y en el siguiente renglón terminarla al cerrar el paréntesis. Con esto python sabe que debe tomar toda la sentencia como si estuviera en el mismo renglón. Conforme avancemos tendremos oportunidad de poner en práctica estas recomendaciones, pero es importante que desde ahora las tengas en cuenta.

Hemos terminado de utilizar el cuaderno que abrimos para esta sesión. Así que lo puedes guardar con el nombre Sesion_2 dando clic en la esquina superior izquierda donde dice untitled, seguido del botón de guardar. Cierra la pestaña para que regreses al explorador de archivos de jupyter. Verás que está en verde el archivo del cuaderno. Selecciónalo dando clic en el cuadro blanco, y se habilitará un botón remarcado con color aparentemente dorado, shutdown. Presiónalo. Ahora verás que está gris el archivo de tu cuaderno. Esto quiere decir que has apagado el cuaderno, por lo que ya no consume recursos de la computadora, como cuando se torna verde. Este apagado también se puede hacer en el cuaderno abierto, seleccionando shutdown del menú Kernel (figura 2.12). Pero quería que notaras el cambio de color en el listado de archivos para identificar los cuadernos que estén consumiendo recursos, pero no son utilizados.

Figura 2.12 Hay dos formas de apagar un cuaderno. Izquierda: botón que se debe presionar cuando se está en el explorador de archivos. Derecha: menú desplegable donde está la opción para apagar el cuaderno.

Ahora, tanto en el explorador de archivos de Windows como en el de jupyter, verás una carpeta extra que se ha creado sin tu consentimiento. La carpeta se llama .ipynb_checkpoints. En ella se guardan los puntos de recuperación de tus proyectos en jupyter, por si se cierra sin guardar o se te va la luz. No es necesario que la borres; en ella están todos los puntos de recuperación de todos los proyectos que tengas en el mismo directorio. Pero si la borras, nada malo sucede. Sólo cuida guardar siempre tu proyecto cada cierto tiempo.

Guárdalos en un cuaderno que se llame Sesion_2_ejercicios.

Puedes descargar el código hecho en cada una de las sesiones y los ejercicios resueltos suscribiéndote a mi patreon: https://www.patreon.com/ciencias_tierra.

Nos vemos en la siguiente sesión, donde veremos estructuras de datos con lo que podrás encaminarte en realizar programas más completos. Por ahora te dejo unos ejercicios para tus ratos de ocio.

Ejercicios

2.1 - Guarda en una variable llamada nombre tu nombre, e imprime la variable.*

2.2 - Guarda en las variables a, b y c los valores 17, 19 y -23 respectivamente. Obtén la suma de los tres en una variable llamada suma, las multiplicaciones de a*c y a*b*c en dos variables llamadas producto_1 y producto_2, la resta a - (b - c) en una variable llamada diferencia y la potencia (a*b)³ en la variable potencia. Imprime los cinco resultados en un mismo renglón.*

2.3 - La impresión de resultados puede acompañarse con texto. Sólo hay que separar a la cadena y a la variable con una coma, a la izquierda y a la derecha:

print('El resultado es:', variable_resultado,'unidades.')

Realiza las siguientes operaciones, una por celda, e imprime el resultado con texto.**

Respuestas: 42, 9

2.4 - Obtener la distancia entre dos puntos dados en coordenadas UTM.**

Respuesta redondeada: 17169.73

2.5 - Calcular el volumen de una esfera con el radio y un valor de pi dados.**

Respuesta: 65450

Nota: Es posible que se muestre como resultado el 65449.99

2.6 - Obtener el período orbital de la Tierra en días. ***

a) La tercera ley de Kepler permite conocer el período orbital T de un planeta en segundos, dada la constante de gravitación universal G, el semieje mayor orbital a y la masa del Sol M. Para el semieje mayor orbital de la Tierra, obtener el período orbital T. Las unidades no se agregan a las variables. Procura agregar las unidades al resultado.

b) Ya que has encontrado el período en segundos, ahora haz la conversión para obtener el período en días. Ya sabes qué respuesta debe dar de forma aproximada, pero si obtienes un resultado fuera del margen de más de un día, o menos un día, deberías revisar tu código.

--

--

Damian

Anything I want and is related to data. Learning to become a Data Professional.