Conviértete en científico de datos: Día 1
Í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/.
Introducción
La ciencia de datos se ocupa de grandes volúmenes de datos utilizando diferentes herramientas y tecnologías para descubrir los conocimientos de los datos que pueden afectar las decisiones comerciales de cualquier organización. La ciencia de datos ha ganado una gran importancia porque su análisis ayuda a tomar decisiones inteligentes en muchas industrias como marketing, finanzas, atención médica, etc. A medida que el aprendizaje automático continúa creciendo, también ha penetrado en el campo de la ciencia de datos. Entonces, en este camino, aprenderá los conceptos básicos de ciencia de datos, manipulación de datos, big data, cómo el aprendizaje automático juega un papel en el campo de la ciencia de datos y el procesamiento de datos con scikit-learn. Adquirirás conocimiento del aprendizaje profundo con TensorFlow y Keras. Finalmente, conocerá la construcción de datos escalables y modelos de tuberías. En general, esta ruta es su guía todo en uno para convertirse en un científico de datos seguro.
Objetivos de aprendizaje
- Aprenda los conceptos básicos de la ciencia de datos.
- Aprenda a analizar y manipular datos con pandas y NumPy.
- Conozca el procesamiento de datos, el modelado y la agrupación con scikit-learn.
- Sumérgete en el aprendizaje profundo con TensorFlow y Keras.
- Aprenda diferentes herramientas para construir tuberías de modelos escalables.
Día 1. Comenzando con la ciencia de datos
Este módulo nos familiarizará con el estado de la ciencia de datos y sus conceptos fundamentales. Revisaremos las aplicaciones de la ciencia de datos y algunas bibliotecas que son esenciales para resolver cualquier problema en este campo, como Beautiful Soup, Scrapy, NumPy, pandas, spaCy, etc.
También aprenderemos sobre la manipulación de datos con NumPy, así como sobre probabilidad y estadísticas. Al final de este módulo, tendremos conocimientos básicos y esenciales de la ciencia de datos y sus bibliotecas.
¿Qué es la ciencia de datos?
Ciencia de datos versus análisis de datos versus ingeniería 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 | Análisis de datos | Ingenierí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 datsos | Habilidades requeridas en el análisis de datos | Habilidades 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 descriptiva | Analí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 descriptiva | Ejemplos 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:
- 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.
- 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.
- 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.
- 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í.
- 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.
- 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.
- 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.
- 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.
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épalo | Ancho de sépalo | Longitud del pétalo | Ancho de pétalo | Especie |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | versicolor |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | virginica |
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 ].](Imagen de gatos [ Ejemplo de conjunto de datos no estructurados ].jpeg)
Figura 2. Imagen de gatos [ Ejemplo de conjunto de datos no estructurados ].
Videos.
Audio.
![Figura 3. Audio [ Ejemplo de conjunto de datos no estructurados ].](Audio [ Ejemplo de conjunto de datos no estructurados ].png)
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.
## Aplicaciones de la ciencia de datos
<hr>
### Aplicaciones en sistemas de salud y recomendaciones
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.
### Descubrimiento de drogas
Data Science se usa ampliamente en el descubrimiento de fármacos. La composición de los medicamentos se verifica contra ciertas bacterias, y sus resultados se compilan y estudian en forma digital, lo que no fue posible hace una década. Desde que los farmacéuticos descubrieron Data Science, han usado su poder y, como resultado, están surgiendo muchos medicamentos nuevos.
### Medicina predictiva
Hoy en día, los profesionales de la salud usan muchos dispositivos portátiles para rastrear la presión arterial, la frecuencia cardíaca y el nivel de azúcar en la sangre de los pacientes. Estos datos se generan y procesan en tiempo real. Según los datos de salud actuales del cuerpo, el sistema puede activar una alarma que indica que algo malo está por sucederle al paciente. Esto fue imposible en el pasado. Esto puede salvar más vidas.
Data Science se está utilizando en medicina predictiva
### Imágenes médicas
Data Science también se está utilizando ampliamente en imágenes médicas. Las radiografías, los ultrasonidos y las imágenes de resonancia magnética utilizan Data Science para diagnosticar posibles problemas en los pacientes. Lo sorprendente es que la visión por computadora (, una parte de las herramientas de Ciencia de datos ), puede detectar el cáncer en los escaneos correspondientes y está superando a los médicos. Esos sistemas y otros problemas se están implementando en dispositivos en tiempo real y se están haciendo accesibles para las personas donde hay escasez de médicos.
Data Science se está utilizando en imágenes médicas
### Genómica
En genómica, aplicamos Data Science para comprender la secuencia subyacente del genoma y tratar de comprender sus patrones secretos, que están involucrados en la función de diferentes partes de un cuerpo humano.
Genomic Data Science trata con genomas en el cuerpo humano.
### Ciencia de datos para sistemas de recomendación
Data Science también juega un papel clave en la recuperación de información. Cada vez que un usuario compra un producto de un sitio determinado como Amazonas o Alibaba, comienzan a ver algunos anuncios o artículos relacionados con el producto. Del mismo modo, un usuario puede obtener recomendaciones mientras compra artículos. El historial de compras del usuario se almacena en el servidor de la compañía, y la compañía está utilizando Data Science para predecir qué artículos es probable que el usuario compre a continuación. Esta técnica se está utilizando en muchos sitios para aumentar el tráfico del sitio y mejorar las ventas de productos.
Mi cuenta de Amazon recomienda los siguientes artículos según mi historial de compras y otros factores.
Sistema recomendado en Amazon
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 MundoIngresa tu nombre: Jeshua Romero GuadarramaHola 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 MundoIngresa tu nombre: Jeshua Romero GuadarramaHola Jeshua Romero Guadarrama¿Cómo se llama tu mejor amiga?: Ingrid AbdeelHola 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 = 50print(mi_variable)mi_variable = Trueprint(mi_variable)
El resultado de ejecutar el ejemplo anterior es:
Jeshua Romero Guadarrama50True
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.
