preloader

Cero a héroe en ciencia de datos

Índice de contenido

Resumen:
Aprenda los conceptos básicos de la ciencia de datos y cómo trabajar con bibliotecas importantes como NumPy, pandas, Beautiful Soup, entre otras.
¿Cómo citar el presente artículo?
Romero, J. (15 de agosto de 2023). Título. python-data-engineer. https://www.python-data-scientist.com/es/blog/programacion/dia_1/.
¿Qué es la ciencia de datos? by Jeshua Romero Guadarrama, available under Attribution 4.0 International (CC BY 4.0) at https://www.python-data-scientist.com/es/blog/programacion/dia_1/.

Día 1. Comenzando con la ciencia de datos

Introducción


Objetivos de aprendizaje


  • Familiaridad con los componentes centrales de Python, incluida la sintaxis, la funcionalidad, los tipos de datos, las estructuras de datos y los operadores.
  • Un conocimiento práctico de cómo extraer y representar datos usando Python y leyendo y exportando datos a diferentes archivos.
  • Experiencia práctica utilizando bibliotecas de Python como Numpy y pandas para fines de extracción, limpieza y procesamiento de datos.
  • La capacidad de usar bibliotecas de Python como Matplotlib para la visualización de datos después de que se haya limpiado y procesado.

¿Qué es la ciencia de datos?


En esta lección, aprenderá sobre la ciencia de datos, análisis de datos e ingeniería de datos. Estos campos se diferencian en función de las actividades que se hacen en ellos.

Ciencia de datos versus análisis de datos versus ingeniería de datos

Ciencia de datosAnálisis de datosIngeniería de datos
La ciencia de datos trata sobre cómo desenterrar ideas de datos que pueden afectar las decisiones futuras. Involucra la parte del análisis predictivo utilizando Machine Learning y campos relacionados.El análisis de datos trata de extraer la información de los datos limpiándola y transformándola. Tiene muchas áreas superpuestas con la ciencia de datos, como presentar las ideas al equipo y hacer visualizaciones, aunque se pierde la parte de aprendizaje automático.La ingeniería de datos se trata de ayudar a los científicos de datos y analistas de datos en sus trabajos diarios. Implica hacer tuberías de datos, desarrollar arquitecturas, almacenar datos de la manera más eficiente y hacer que grandes cantidades de datos sean accesibles para los científicos de datos y analistas de datos de manera optimizada. También implica el uso de herramientas para descubrir información oculta en sus datos.
Habilidades requeridas en la ciencia de datsosHabilidades requeridas en el análisis de datosHabilidades requeridas en la ingeniería de datos
- Cualquier herramienta de código abierto que se proporcione con documentación completa.- Cualquier herramienta de código abierto que se proporcione con documentación completa.- Cualquier herramienta de código abierto que se proporcione con documentación completa.
- Lenguajes de programación como Python, R, Scala o Java.- Lenguajes de programación como Python, R, Scala o Java.
- Lenguajes para consultar bases de datos SQL.- Lenguajes para consultar bases de datos SQL.- Lenguajes para consultar bases de datos SQL.
- Lenguajes para consultar bases de datos NoSQL y ElasticSearch.- Lenguajes para consultar bases de datos NoSQL y ElasticSearch.- Lenguajes para consultar bases de datos NoSQL y ElasticSearch.
- Aprendizaje automático.- Minearía de datos.- Procesamiento y almacenamiento de grandes volúmenes de datos con Hadoop, Spark, Hive, Drill, Pig o Hbase.
- Aprendizaje profundo.- Reconocimiento de patrones.- Transferencia y streaming de datos con Sqoop, Flume, Kafka o Storm.
- Procesamiento de lenguaje natural.- Creación de dashboards mediante Tableau o Power BI.- Búsqueda y análisis de datos con Solr, Lucene, Splunk o Knime.
- Visión por computadora.- Recuperación de información.- Lenguajes para consultar bases de datos gráficas Neo4j.
- Bibliotecas Python para Machine Learning como Scikit-Learn, TensorFlow, Keras y PyTorch.- Bibliotecas Python para Analytics Engineer como Pandas, Numpy y PySpark.-Desarrollo y despliegue de aplicaciones con Docker, Kubernetes o Flask.

Análisis descriptivo y predictivo

En esta lección, aprenderá más detalles sobre el análisis descriptivo y predictivo con la ayuda de ejemplos.

Analítica descriptivaAnalítica predictiva
La analítica descriptiva se ocupa de mirar datos pasados y describir los eventos e instancias que ocurrieron. Si se profundiza un poco más en el concepto, se puede hablar de la analítica de diagnóstico, la cual busca explicar “por qué” sucedió algo. La analítica de diagnóstico forma parte del trabajo diario de los científicos de datos, ya que se centra en el pasado para encontrar relaciones de causa y efecto.La analítica predictiva se trata de predecir y pronosticar lo que puede suceder en el futuro en función de los datos pasados y presentes. Si se profundiza un poco más en el concepto, se puede hablar de la analítica de prescripción, la cual ayuda a decidir qué decisiones tomar para alterar el resultado de eventos futuros. La analítica de prescripción forma parte del trabajo diario de los científicos de datos, ya que se centra en el futuro para decidir qué opciones tendrán el mejor resultado para la empresa.
Ejemplos de la analítica descriptivaEjemplos de la analítica predictiva
¿Qué áreas del mundo vendió más un libro en particular en función de los datos de ventas?¿Cuál será el clima la próxima semana según los datos meteorológicos anteriores?
¿Qué sector económico del país creció más en el último año?¿Dónde ocurrirá un incendio forestal antes de que realmente suceda?
¿Por qué los automóvilistas prefieren una determinada ruta sobre otras alternativas?¿Dónde está a punto de suceder un crimen?

Ciclo de vida en la ciencia de datos

El ciclo de vida implica la comprensión del problema, la adquisición de datos, la eliminación de datos, la exploración de datos, la ingeniería de características, el modelado, la implementación y el monitoreo. Aprenderás sobre esto en esta lección.

El ciclo de vida de la ciencia de datos implica los siguientes pasos:

  1. Comprender el problema: Todo comienza con la comprensión del problema en cuestión, las preguntas y respuestas que estamos tratando de encontrar en el respectivo conjunto de datos.
  2. Adquirir los datos: Como su nombre lo indica, se trata de encontrar los datos con la ayuda de ingenieros de datos, de ser necesario. También se buscan consolidar todos los datos necesarios para responder la pregunta o para resolver el problema en cuestión.
  3. Limpiar los datos: Consiste en usar ciertos conocimientos para el preprocesamiento de los datos, lo cual implica buscar valores faltantes y hacer preguntas comerciales como: ¿con qué tipo de datos se conforma la base? Además, se requieren ciertas nociones sobre el negocio para dar forma al conjunto de datos y generar visualizaciones que apoyen los próximos pasos en el ciclo de vida.
  4. Explorar los datos: La exploración de datos se generar visualizaciones y calcular ciertas estadísticas para determinar si las preguntas que hicimos al principio están siendo respondidas o no. El trabajo del analista de datos termina aquí.
  5. Ingeniería de características y selección: Un paso de preprocesamiento previo a modelar tanto en Machine Learning como en Deep Learning. Tiene pasos similares al Data Wrangling, aparte de algunos algoritmos para la selección y transformación de características.
  6. Modelar: El modelado es el proceso que descubre el significado de los datos. Se trata de capturar las tendencias subyacentes y el comportamiento de los datos para hacer el modelo, que puede usarse para análisis predictivos como se describe en la sección anterior.
  7. Desplegar: Después de construir el modelo, lo implementaremos de la manera más eficiente y optimizada para que las personas del mundo real puedan usarlo. Se puede implementar en aplicaciones móviles y aplicaciones web.
  8. Monitorear: Después de implementar el modelo, querremos monitorearlo. El monitoreo consiste en familiarizar el modelo con el nuevo conjunto de datos y rastrear el número de solicitudes que recibe el modelo. También implica realizar cambios en el análisis y comenzar de nuevo si es necesario.

Figura 1. Ciclo de vida de ciencia de datos.

Figura 1. Ciclo de vida de ciencia de datos.

Datos estructurados versus semiestructurado versus no estructurados

En esta lección, descubriremos detalles sobre datos estructurados, semiestructurados y no estructurados. Específicamente, los datos estructurados tienen un formato específico, mientras que los datos no estructurados carecen de ellos. Los datos semiestructurados se encuentran entre los dos.

Datos estructurados

Viene con un formato y estructura predefinidos. Los datos estructurados generalmente se almacenan en bases de datos relacionales (resultan fáciles de tratar en el dominio de la ciencia de datos).

Ejemplos

Aquí hay una tabla simple con columnas de diversos tipos. Se puede almacenar en cualquier base de datos relacional, archivo Excel, etc.

Longitud de sépaloAncho de sépaloLongitud del pétaloAncho de pétaloEspecie
5.13.51.40.2setosa
4.93.01.40.2versicolor
4.73.21.30.2setosa
4.63.11.50.2virginica

Datos semiestructurados

Viene con un formato y una estructura predefinidos, pero no se almacena en una base de datos relacional.

Ejemplos

JSON (notación de objetos Javascript)

{
name: "Álgebra Lineal para Aprendizaje Automático",
author: "Jeshua Romero Guadarrama",
pages: 211,
parts: 5,
format: "PDF",
total_codes: 92
}

XML (lenguaje de marcado extensible

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <author>Jeshua Romero Guadarrama</author>
    <format>PDF</format>
    <name>Álgebra Lineal para Aprendizaje Automático</name>
    <pages>211</pages>
    <parts>5</parts>
    <total_codes>92</total_codes>
</book>

Datos no estructurados

No tiene un formato específico y carece de estructura (el tipo de datos que representa muchos desafíos a manejar en el dominio de ciencia de datos).

Ejemplos

  • Imágenes.

Figura 2. Imagen de gatos [ Ejemplo de conjunto de datos no estructurados ].

Figura 2. Imagen de gatos [ Ejemplo de conjunto de datos no estructurados ].

  • Videos.

  • Audio.

Figura 3. Audio [ Ejemplo de conjunto de datos no estructurados ].

Figura 3. Audio [ Ejemplo de conjunto de datos no estructurados ].

  • Correo electrónico o cualquier artículo como se ve a continuación.

La computación cuántica utiliza fenómenos mecánico-cuántico como la superposición. En este contexto, una computadora cuántica puede realizar diversos cálculos, los cuales pueden implementarse teórica o físicamente. Actualmente, hay dos enfoques principales para implementar físicamente una computadora cuántica: analógica y digital. Los enfoques analógicos se dividen en la simulación cuántica o el cálculo cuántico adiabático.

  • Cualquier página web.
python
## Aplicaciones de la ciencia de datos
<hr>


Aprenderá cómo el descubrimiento de fármacos, la medicina predictiva, las imágenes médicas, la genómica y los sistemas de recomendación utilizan la ciencia de datos.

### Aplicaciones en sistemas de salud y recomendaciones

En esta lección, aprenderá sobre ciencia de datos, análisis de datos e ingeniería de datos. Estos campos se diferencian en función de las actividades que hacemos en ellos.

Ciencia de datos versus análisis de datos


Ciencia de datos versus análisis de datos versus ingeniería de datos

Data Science trata sobre cómo desenterrar ideas de datos que pueden afectar las decisiones futuras. Involucra la parte del análisis predictivo utilizando Machine Learning y campos relacionados.

Habilidades requeridas en ciencia de datos

  • Lenguaje de programación como Python o R.
  • Lenguaje de bases de datos SQL.
  • Aprendizaje automático.
  • Aprendizaje profundo.
  • Procesamiento de lenguaje natural.
  • Visión por computadora.
  • Recuperación de información.
  • Bibliotecas Python para Machine Learning como scikit-learn, Ttensorflow, keras y PyTorch.
  • Lenguaje de bases de datos NoSQL y ElasticSearch

Ciencia de datos

El análisis de datos trata de extraer la información de los datos limpiándola y transformándola. Tiene muchas áreas superpuestas con Data Science, como presentar las ideas al equipo y hacer visualizaciones. Pero se pierde la Parte de aprendizaje automático.

Ahora bien, una vez que se ha mencionado el propósito del programa "Hola Mundo", se procede a discutir y profundizar en su funcionamiento para comprenderlo con un mayor nivel de detalle.

Nuestro programa ‘Hola Mundo’ ya se ha presentado en el primer capítulo de este libro, sin embargo, volveremos a él aquí y veremos más de cerca lo que está sucediendo.

En el lenguaje de programación Python, la versión más simple del programa "Hola Mundo" consiste en la impresión de una cadena que contiene un mensaje de bienvenida:

print('Hola Mundo')

Resulta importante mencionar que es posible utilizar diversos editores de texto o Entornos de Desarrollo Integrado (IDE, por sus siglas en inglés) para generar un archivo de Python. Algunos ejemplos populares de editores empleados con Python incluyen Emacs, Vim, Notepad++, Sublime Text o Visual Studio Code. Asimismo, se pueden utilizar un IDE específico para Python como PyCharm y Eclipse. A partir de cualquiera de estas herramientas, es viable crear un archivo con extensión ‘.py’, el cual puede contener una o más instrucciones de Python que conformen un programa o script en este lenguaje.

Un ejemplo práctico sería la creación de un archivo denominado hello.py que contenga la función de impresión (print) mencionada previamente.

Una interrogante habitual es la siguiente: ¿Cuál es el origen de la función print()?

En realidad, print() es una función incorporada que se utiliza para mostrar información al usuario. La salida generada por la función se muestra en lo que se conoce como flujo de salida (‘output stream’). El flujo maneja una secuencia de datos, tales como letras y números. A su vez, dicho flujo de salida de datos puede dirigirse hacia una ventana de salida, como la terminal en un equipo Mac o la ventana de comandos en un PC con Windows. En este caso específico, se imprime la cadena 'Hola Mundo'.

Cuando mencionamos que es una función incorporada, nos referimos a que se encuentra integrada en el entorno de Python y es reconocida por el intérprete de Python. Lo cual implica que el intérprete sabe dónde encontrar la definición de la función print() y qué acciones realizar cuando se encuentra con dicha función.

Por supuesto, también es posible crear funciones propias (se explorará cómo llevar a cabo esta tarea en una futura entrada).

  • cuando se le proporciona una cadena, imprimirá una cadena,
  • si se le proporciona un número entero como 42, imprimirá 42, y
  • si se le proporciona un número de punto flotante como 23.56, imprimirá 23.56.

Ahora bien, la función print() tiene la capacidad de adaptarse al tipo de dato que se le proporciona como argumento:

  • En el caso de un dato del tipo cadena, imprimirá la cadena tal como se le ha proporcionado.
  • Si se le suministra un dato del tipo entero, como el número 10, imprimirá el número entero 10.
  • De manera similar, si se le proporciona un dato del tipo punto flotante, como el número 15.99, imprimirá el número de punto flotante 15.99.

En resumen, la función print() es capaz de reconocer el tipo de dato que se le pasa como argumento y realizar la impresión correspondiente de manera adecuada.

Así que, cuando ejecutamos este programa, la cadena 'Hola Mundo' se imprimirá en la ventana de la consola.

Debe tomarse en cuenta que el texto que conforma la cadena 'Hola Mundo' está encerrado entre dos comillas simples, las cuales delimitan el inicio y el final de la cadena. Por ende, es fundamental no olvidar ninguna de estas comillas, ya que de lo contrario se generará un error.

Para ejecutar el programa, si se está utilizando un Entorno de Desarrollo Integrado (IDE) como PyCharm, puedes seleccionar el archivo en el árbol de archivos a la izquierda y hacer clic derecho para elegir la opción “Run” (“Ejecutar”). Si se desea ejecutar el programa nuevamente, simplemente puedes hacer clic en la flecha verde ubicada en la barra de herramientas en la parte superior del IDE.

Si se desea ejecutar el programa desde la línea de comandos, se debe escribir python seguido del nombre del archivo. Por ejemplo:

> python hello.py

Lo cual debe realizarse desde el directorio donde se creó el archivo. Por consiguiente, se recomienda llevar a cabo esta acción en la carpeta de origen del archivo que ha sido previamente creado.

Hola Mundo Interactivo


Llegado este punto, mejoraremos el programa para hacerlo un poco más interesante al pedirnos nuestro nombre y saludarnos personalmente. El programa actualizado es el siguiente:

print('Hola Mundo')
nombre_usuario = input('Ingresa tu nombre:')
print('Hola', nombre_usuario)

A continuación, después de imprimir la cadena original "Hola Mundo", el programa presenta dos declaraciones adicionales.

El resultado obtenido al ejecutar este programa es el siguiente:

Hola Mundo
Ingresa tu nombre: Jeshua Romero Guadarrama
Hola Jeshua Romero Guadarrama

Analizaremos cada una de las nuevas declaraciones por separado.

La primera declaración es la siguiente:

nombre_usuario = input('Ingresa tu nombre:')

Esta declaración realiza varias acciones. En primer lugar, ejecuta otra función llamada input(). Dicha función recibe una cadena, conocida como argumento, para utilizarla como mensaje al solicitar la entrada del usuario.

Asimismo, la función input() también representa una función incorporada que forma parte del lenguaje de Python. En este caso, mostrará la cadena que se le proporciona como mensaje al usuario y esperará hasta que el usuario escriba algo y presione la tecla de retorno.

Lo que el usuario escriba se devuelve como resultado de ejecutar la función input(). En este caso, ese resultado se almacena en la variable nombre_usuario.

Una variable es un área identificada en la memoria de la computadora que permite almacenar diversos tipos de datos, como cadenas de texto, números y valores booleanos (como Verdadero/Falso). En el contexto actual, la variable nombre_usuario cumple la función de etiqueta que identifica un espacio de memoria destinado a contener la cadena ingresada por el usuario. La siguiente representación gráfica ilustra de manera concisa esta idea fundamental:

________________________________________________________________________________________________
________________________nombre_usuario ->Jeshua Romero Guadarrama________________________
________________________________________________________________________________________________

Una variable, como nombre_usuario, puede referenciar un área de memoria que contiene datos reales. En el diagrama, la memoria se muestra como una cuadrícula bidimensional de ubicaciones de memoria, donde cada ubicación tiene una dirección única asociada. Dicha dirección, también conocida como dirección única de memoria, se utiliza para acceder a los datos almacenados en esa ubicación. En este caso, la dirección de memoria es lo que almacena la variable nombre_usuario; es decir, la variable apunta al área de memoria que contiene la cadena ‘Jeshua Romero Guadarrama’.

En consecuencia, la variable nombre_usuario facilita y permite el acceso conveniente a esta área de memoria.

Por ejemplo, si deseamos obtener el nombre ingresado por el usuario en otra declaración, simplemente podemos hacer referencia a la variable nombre_usuario. De hecho, eso es precisamente lo que hacemos en la segunda declaración que agregamos a nuestro programa, que se muestra a continuación:

print('Hola', nombre_usuario)

En esta última declaración, utilizamos nuevamente la función incorporada print(), pero en esta ocasión se introducen dos argumentos. La función print() puede recibir un número variable de argumentos (elementos de datos), separados por comas. En este caso, se ha introducido la cadena 'Hola' y cualquier valor referenciado por la variable nombre_usuario (presente en la dirección de memoria indicada por dicha variable).

Variables


Puede preguntarse por qué el elemento que contiene el nombre del usuario se llama variable. Se le llama variable porque el valor al que hace referencia en memoria puede variar durante la vida del programa.

Por ejemplo, podemos modificar nuestro programa Hola Mundo para preguntarle al usuario el nombre de su mejor amigo y mostrar un mensaje de bienvenida a ese mejor amigo. Si lo deseamos, podemos reutilizar la variable para almacenar el nombre de ese mejor amigo. Por ejemplo:

Puede surgir la pregunta sobre por qué Es comprensible que pueda surga la pregunta sobre el motivo por el cual se denomina variable al elemento que contiene el nombre del usuario. El término “variable” se utiliza debido a que el valor al que hace referencia en memoria puede cambiar o variar durante la ejecución del programa.

Por ejemplo, podemos modificar nuestro programa “Hola Mundo” para solicitar al usuario el nombre de su mejor amigo y mostrar un mensaje de bienvenida personalizado para ese amigo. Si así lo deseamos, podemos reutilizar la misma variable para almacenar el nombre de ese mejor amigo. Por ejemplo:

print('Hola Mundo')
nombre_usuario = input('Ingresa tu nombre:')
print('Hola', nombre_usuario)
nombre_usuario = input('¿Cómo se llama tu mejor amiga?:')
print('Hola Mejor Amiga', nombre_usuario)

Cuando ejecutamos esta versión del programa y el usuario ingresa ‘John’ como su nombre y ‘Denise’ como el nombre de su mejor amigo, veremos: Hola, mundo

Hola Mundo
Ingresa tu nombre: Jeshua Romero Guadarrama
Hola Jeshua Romero Guadarrama
¿Cómo se llama tu mejor amiga?: Ingrid Abdeel
Hola Mejor Amiga Ingrid Abdeel

Como puedes ver en esto, cuando se imprime la cadena ‘Hola Mejor Amigo’, es el nombre ‘Denise’ el que se imprime junto a ella.

Esto se debe a que el área de memoria que anteriormente contenía la cadena ‘John’ ahora contiene la cadena ‘Denise’.

De hecho, en Python, la variable nombre no está restringida a contener solo una cadena como ‘John’ y ‘Denise’; también puede contener otros tipos de datos como números o los valores Verdadero y Falso. Por ejemplo:

mi_variable = 'Jeshua Romero Guadarrama'
print(mi_variable)
mi_variable = 50
print(mi_variable)
mi_variable = True
print(mi_variable)

El resultado de ejecutar el ejemplo anterior es:

Jeshua Romero Guadarrama
50
True

Como se puede observar, la variable “my_variable” primero contiene (o hace referencia al área de memoria que contiene) la cadena “John”, luego contiene el número 42 y finalmente contiene el valor Booleano Verdadero (los valores Booleanos solo pueden ser Verdadero o Falso).

Esto se conoce en Python como Tipado Dinámico. Es decir, el tipo de datos que contiene una variable puede cambiar de forma dinámica a medida que el programa se ejecuta. Aunque esto puede parecer la forma obvia de hacer las cosas, no es el enfoque utilizado por muchos lenguajes de programación como Java y C#, donde las variables son de Tipado Estático. La palabra “estático” se utiliza aquí para indicar que el tipo de datos que una variable puede contener se determinará cuando el programa se procese por primera vez (o se compile). Posteriormente, no será posible cambiar el tipo de datos que puede contener; por lo tanto, si una variable va a contener un número, no podrá contener posteriormente una cadena. Este es el enfoque adoptado por lenguajes como Java y C#.

Ambos enfoques tienen sus pros y sus contras, pero para muchas personas, la flexibilidad de las variables en Python es una de sus principales ventajas.

\subsection{Convenciones de Nomenclatura}

Puede haber notado algo en los nombres de variables que hemos introducido anteriormente, como “user_name” y “my_variable”. Ambos nombres de variables están formados por un conjunto de caracteres con una barra baja entre las ‘palabras’ del nombre de la variable.

Ambos nombres de variables destacan una convención de nomenclatura muy utilizada en Python, que establece que los nombres de las variables deben:

estar en minúsculas,

ser en general más descriptivos que los nombres de variables como $a$ o $b$ (aunque hay algunas excepciones, como el uso de variables $i$ y $j$ en estructuras de bucles).

con palabras individuales separadas por guiones bajos según sea necesario para mejorar la legibilidad.

Este último punto es muy importante, ya que en Python (y en la mayoría de los lenguajes de programación), los espacios se tratan como separadores que se pueden utilizar para indicar dónde termina una cosa y comienza otra. Por lo tanto, no es posible definir un nombre de variable como:

user name Ya que el espacio se trata como un separador y Python interpreta que se están definiendo dos cosas diferentes: ‘user’ y ’name’.

Cuando crees tus propias variables, debes intentar nombrarlas siguiendo el estilo aceptado en Python. Por lo tanto, nombres como:

my_name, your_name, user_name, account_name

count, total_number_of_users, percentage_passed, pass_rate

where_we_live, house_number,

is_okay, is_correct, status_flag

son todos aceptables, pero nombres como:

A, Aaaaa, aaAAAaa

Myname, myName, MyName o MYName

WHEREWELIVE

no cumplen con las convenciones aceptadas.

Sin embargo, vale la pena mencionar que estas son solo convenciones comúnmente seguidas y incluso Python mismo no siempre cumple con estas convenciones. Por lo tanto, si defines un nombre de variable que no cumple con la convención, Python no se quejará.

\subsection{Operador de Asignación}

Un aspecto final de la declaración mostrada a continuación aún no se ha considerado:

\text{user_name = input(‘Ingrese su nombre: ‘)} ¿Qué es exactamente este ’ $=$ ’ entre la variable “user_name” y la función “input()”?

Se llama operador de asignación. Se utiliza para asignar el valor devuelto por la función “input()” a la variable “user_name”. Es probablemente el operador más ampliamente utilizado en Python. Por supuesto, no solo se utiliza para asignar valores de funciones, como ilustraron los ejemplos anteriores. Por ejemplo, también lo usamos cuando almacenamos una cadena directamente en una variable:

my_variable = ‘Jason’

\subsection{Declaraciones en Python}

A lo largo de este capítulo, hemos utilizado el término “declaración” para describir una porción de un programa en Python, por ejemplo, la siguiente línea de código es una declaración que imprime una cadena ‘Hello’ y el valor contenido en “user_name”.

print(‘Hello’, user_name)

Entonces, ¿qué queremos decir con “declaración”? En Python, una declaración es una instrucción que el intérprete de Python puede ejecutar. Esta declaración puede estar formada por varios elementos, como el ejemplo anterior que incluye una llamada a una función y una asignación de un valor a una variable. En muchos casos, una declaración es una sola línea en su programa, pero también es posible que una declaración se extienda sobre varias líneas, especialmente si esto ayuda a la legibilidad o estructura del código. Por ejemplo, lo siguiente es una sola declaración, pero se extiende sobre 6 líneas de código para facilitar su lectura:

print('La población total de', ciudad, 'era', cantidad_de_personas_en_ciudad, 'en', año) print('La población total de', ciudad, 'era', cantidad_de_personas_en_ciudad, 'en', año)

Además de las declaraciones, también existen las expresiones. Una expresión es básicamente un cálculo que genera un valor, por ejemplo: $4+5$

Esta es una expresión que suma 4 y 5 y genera el valor 9.

\subsection{Comentarios en el código}

Es una práctica común (aunque no universal) agregar comentarios al código para ayudar a cualquier persona que lea el código a comprender lo que hace, cuál era su intención, cualquier decisión de diseño que haya tomado el programador, etc.

Los comentarios son secciones de un programa que son ignoradas por el intérprete de Python, no son código ejecutable.

Un comentario se indica con el carácter ‘#’ en Python. Cualquier cosa que siga a ese carácter hasta el final de la línea será ignorada por el intérprete, ya que se asumirá que es un comentario, por ejemplo:

`

Este es un comentario

nombre = input(‘Ingrese su nombre: ‘)

Este es otro comentario

print(nombre) # este es un comentario hasta el final de la línea`

En el código anterior, las dos líneas que comienzan con # son comentarios, son solo para nuestros ojos humanos. Interesantemente, la línea que contiene la función print() también tiene un comentario, lo cual está bien, ya que el comentario comienza con # y se extiende hasta el final de la línea. Cualquier cosa antes del carácter # no forma parte del comentario.

\subsection{Scripts versus Programas}

Python se puede ejecutar de varias formas:

A través del intérprete de Python al ingresar al REPL; la sesión interactiva de Python.

Haciendo que el intérprete de Python ejecute un archivo que contiene comandos de Python almacenados.

Configurando una asociación a nivel del sistema operativo para que cualquier archivo que termine con .py siempre se ejecute mediante el intérprete de Python.

Indicando al intérprete de Python que se debe utilizar al inicio del archivo de Python. Esto se hace incluyendo una primera línea en el archivo con algo similar a ‘#!/usr/bin/env python’. Esto indica que el resto del archivo debe ser pasado al intérprete de Python.

Todas estas pueden considerarse como formas de ejecutar un programa de Python o, de hecho, un script de Python.

Sin embargo, para los fines de este libro, trataremos un archivo que contiene una primera línea que especifica el intérprete de Python a usar como un script. Todo otro código de Python que represente algún código para ejecutar con un propósito específico será llamado un programa de Python. Sin embargo, esta es realmente solo una distinción que se hace aquí para simplificar la terminología.

\subsection{Recursos en línea}

Consulte la documentación de la Biblioteca Estándar de Python para:

https://docs.python.org/3/reference/simple_stmts.html para obtener información sobre las declaraciones en Python. \subsection{Ejercicios}

En este punto, deberías intentar escribir tu propio programa de Python. Probablemente sea más fácil comenzar modificando el programa “Hello World” que ya hemos estado estudiando. Los siguientes pasos te guiarán a través de esto:

Si aún no has ejecutado el programa “Hello World”, hazlo ahora. Para ejecutar tu programa, tienes varias opciones. La forma más sencilla, si has configurado un entorno de desarrollo integrado (IDE) como PyCharm, es usar la opción del menú “run” (ejecutar). De lo contrario, si has configurado el intérprete de Python en tu computadora, puedes ejecutarlo desde un símbolo del sistema (en Windows) o una ventana de Terminal (en un Mac o una computadora con Linux).

Asegúrate de entender lo que hace el programa. Intenta comentar algunas líneas, ¿qué sucede? ¿Es ese el comportamiento que esperabas? Asegúrate de estar satisfecho con lo que hace.

Una vez que hayas hecho eso, modifica el programa con tus propias solicitudes al usuario (el argumento de cadena dado a la función input). Asegúrate de que cada cadena esté rodeada por los caracteres de comilla simple (’). Recuerda que estos indican el inicio y fin de una cadena.

Intenta crear tus propias variables y almacenar valores en ellas en lugar de la variable user_name.

Agrega una función print() al programa con tu propia solicitud.

Incluye una asignación que sume dos números juntos (por ejemplo, $4+5$) y luego asigna el resultado a una variable.

Ahora imprime el valor de esa variable una vez que se le haya asignado un valor.

Asegúrate de poder ejecutar el programa después de cada uno de los cambios anteriores. Si se informa un error, intenta solucionarlo antes de continuar.

También debes tener cuidado con la indentación de tu programa. Python es muy sensible a cómo se organiza el código y, en este momento, todas las declaraciones deben comenzar al principio de la línea.

El presente blog ha sido patrocinado mediante crowdfunding con el siguiente mensaje: Nuestro Señor Jesucristo, el único Dios verdadero, es misericordioso y nuestro Salvador.

comments powered by Disqus