Data Science para marketing

Creado por Nicolás Labbé

Introducción a Python y Fundamentos Básicos

¿Qué es Python?

Python es un lenguaje de programación de alto nivel, interpretado y de propósito general. Fue creado por Guido van Rossum y lanzado por primera vez en 1991. Es conocido por su simplicidad, legibilidad y versatilidad.

Fue creado por Guido van Rossum y lanzado por primera vez en 1991.

¿Cuáles son su características?

Es conocido por su simplicidad, legibilidad y versatilidad. Algunas caracteristicas son:

  • Sintaxis clara
  • Multiparadigma
  • Amplia biblioteca estándar
  • Comunidad y ecosistema
  • Usos

¿Para qué es usado?

Con Python se pueden hacer muchas cosas gracias a su versatilidad y facilidad de uso.

  • Desarrollo de software
  • Ciencia de datos y análisis
  • Inteligencia artificial y aprendizaje automático
  • Automatización
  • Matemáticas y cálculos complejos

¿Por qué Python?

  • Python funciona en diferentes plataformas (Windows, Mac, Linux, Raspberry Pi, etc.).
  • Python tiene una sintaxis simple similar al idioma inglés y permite a los desarrolladores escribir programas con menos líneas que algunos otros lenguajes de programación.
  • Python funciona con un sistema de interpretación, lo que significa que el código puede ejecutarse tan pronto como se escribe.
  • Python puede ser tratado de manera procedimental, orientada a objetos o funcional.

⚠️ Good to know

  • La versión principal más reciente de Python es Python 3, la cual usaremos en este curso.
  • En este curso, Python se escribirá en una plataforma gratuita basada en la nube ofrecida por Google que permite a los usuarios escribir y ejecutar código Python directamente en un navegador, sin necesidad de configurar un entorno local.

Entorno de desarrollo

Googe Colab es una plataforma gratuita basada en la nube ofrecida por Google que permite a los usuarios escribir y ejecutar código Python directamente en un navegador, sin necesidad de configurar un entorno local.

Está diseñada especialmente para tareas de aprendizaje automático (machine learning), ciencia de datos y educación, ya que proporciona acceso a recursos computacionales potentes, como CPUs, GPUs y TPUs, sin costo adicional en su versión básica.

Algunas características clave de Google Colab incluyen:

  • Entorno de Jupyter Notebook
  • Acceso a hardware gratuito
  • Integración con Google Drive
  • Librerías preinstaladas
  • Colaboración en tiempo real

¿Qué es Project Jupyter?

Project Jupyter es una iniciativa de código abierto de Jupyter® que nació como una evolución de IPython Notebook. Su objetivo es desarrollar herramientas interactivas para la computación científica y la ciencia de datos, permitiendo la creación y ejecución de código en múltiples lenguajes de programación.

¿Qué es Jupyter Notebook?

Un Jupyter Notebook es una aplicación de código abierto que permite crear y compartir documentos interactivos que combinan código ejecutable, texto enriquecido (como Markdown), ecuaciones matemáticas (usando LaTeX), visualizaciones (gráficos, imágenes) y otros elementos multimedia. Es ampliamente utilizado en ciencia de datos, aprendizaje automático, investigación científica y educación por su flexibilidad y facilidad de uso.

Sintáxis

“Conjunto de reglas que define cómo deben escribirse las instrucciones en un lenguaje de programación para que sean válidas y puedan ser interpretadas correctamente por el computador (o, más específicamente, por el compilador o intérprete del lenguaje).”

Ejemplo

						
							print("Hello, World!")
						
					

Indentación en Python

La indentación se refiere a los espacios al principio de una línea de código. Mientras que en otros lenguajes de programación la sangría solo se utiliza para facilitar la lectura, en Python es muy importante.

✅ Ejemplo

Python utiliza la indentación para indicar un bloque de código.

						
							if 5 > 2:
  								print("Five is greater than two!")
						
					

❌ Ejemplo

Python te dará un error si omites la indentación:

						
							if 5 > 2:
							print("Five is greater than two!")
						
					

✅ Ejemplo

La cantidad de espacios depende del programador, el uso más común es cuatro, pero tiene que ser al menos uno.

						
							if 5 > 2:
							 print("Five is greater than two!") 
							if 5 > 2:
							        print("Five is greater than two!") 
						
					

❌ Ejemplo

Debes utilizar la misma cantidad de espacios en el mismo bloque de código, de lo contrario, Python te dará un error:

						
							if 5 > 2:
							 print("Five is greater than two!")
							        print("Five is greater than two!")
						
					

Comentarios en Python

  • Los comentarios se pueden usar para explicar el código Python.
  • Se pueden usar para que el código sea más legible.
  • Se pueden usar para evitar la ejecución al probar el código.

Creando un comentario

Los comentarios comienzan con un # y Python los ignorará:

						
							>>> print("Hello, World!") #This is a comment
							Hello, World!
						
					

Los comentarios se pueden colocar al final de una línea y Python ignorará el resto de la línea:

						
							>>> print("Hello, World!") #This is a comment
							Hello, World!
						
					

Un comentario no tiene que ser necesariamente un texto que explique el código, también puede usarse para evitar que Python ejecute código:

						
							>>> #print("Hello, World!")
							>>> print("Cheers, Mate!")
							Cheers, Mate!
						
					

Comentarios multilínea

Python no tiene una sintaxis específica para comentarios multilínea.

Para añadir un comentario multilínea, se puede insertar un signo # en cada línea:

						
							>>> #This is a comment
							>>> #written in
							>>> #more than just one line
							>>> print("Hello, World!")
							Hello, World!
						
					

O, aunque no sea del todo como se esperaba, puedes usar una cadena multilínea.

Como Python ignora las cadenas literales que no están asignadas a una variable, puedes añadir una cadena multilínea (entre comillas triples) a tu código y colocar tu comentario dentro:

						
							>>> """
							... This is a comment
							... written in
							... more than just one line
							... """
							>>> print("Hello, World!")
							Hello, World!
						
					

Variables en Python

Las variables son contenedores para almacenar valores de datos.

Creación de variables

Python no tiene ningún comando para declarar una variable.

Una variable se crea en el momento en que se le asigna un valor por primera vez.

						
							>>> x = 5
							>>> y = "John"
							>>> print(x)
							5
							>>> print(y)
							John
						
					

Las variables no necesitan declararse con ningún tipo particular, e incluso pueden cambiar de tipo después de haber sido configuradas.

						
							>>> x = 4       # x is of type int
							>>> x = "Sally" # x is now of type str
							>>> print(x)
							Sally							
						
					

Casting

Si desea especificar el tipo de datos de una variable, esto se puede hacer mediante conversión.

						
							x = str(3)    # x will be '3'
							y = int(3)    # y will be 3
							z = float(3)  # z will be 3.0
						
					

Obtener el tipo

Puede obtener el tipo de dato de una variable con la función type().

						
							>>> x = 5
							>>> y = "John"
							>>> print(type(x))
							
							>>> print(type(y))
							
						
					

¿Comillas simples o dobles?

Las variables de cadena se pueden declarar usando comillas simples o dobles:

						
							x = "John"
							# is the same as
							x = 'John'
						
					

Case-Sensitive

Los nombres de las variables distinguen entre mayúsculas y minúsculas.

						
							a = 4
							A = "Sally"
							#A will not overwrite a
						
					

Nombres de variables

Una variable puede tener un nombre corto (como x e y) o uno más descriptivo (edad, nombre_del_coche, volumen_total).

Reglas para las variables de Python

  • El nombre de una variable debe comenzar con una letra o un guion bajo.
  • El nombre de una variable no puede comenzar con un número.
  • El nombre de una variable solo puede contener caracteres alfanuméricos y guiones bajos (A-z, 0-9 y _).
  • Los nombres de las variables distinguen entre mayúsculas y minúsculas (edad, Edad y EDAD son tres variables diferentes).
  • El nombre de una variable no puede ser ninguna de las palabras clave de Python.

✅ Ejemplo

Nombres de variables válidos:

						
							myvar = "John"
							my_var = "John"
							_my_var = "John"
							myVar = "John"
							MYVAR = "John"
							myvar2 = "John"
						
					

❌ Ejemplo

Nombres de variables inválidos:

						
							2myvar = "John"
							my-var = "John"
							my var = "John"
						
					

Nombres de variables con varias palabras

Los nombres de variables con más de una palabra pueden ser difíciles de leer.

En Python, la convención de nombres para variables sigue principalmente las recomendaciones establecidas en el PEP 8, que es la guía de estilo oficial para el código Python.

Convención

Usa snake_case, en donde las palabras está en minúsculas y separadas por guiones bajos

						
							my_variable_name = "John"
						
					

Es legible y es el estándar ampliamente aceptado en Python.

Constantes

Usa UPPER_CASE, en donde las palabras están en mayúsculas y separadas por guiones bajos.

						
							PI = 3.14159
							MAX_RETRIES = 5
						
					

Muchos valores para múltiples variables

Python permite asignar valores a múltiples variables en una sola línea:

						
							>>> x, y, z = "Orange", "Banana", "Cherry"
							>>> print(x)
							Orange
							>>> print(y)
							Banana
							>>> print(z)
							Cherry
						
					

Un valor para múltiples variables

Puedes asignar el mismo valor a múltiples variables en una sola línea:

						
							>>> x = y = z = "Orange"
							>>> print(x)
							Orange
							>>> print(y)
							Orange
							>>> print(z)
							Orange
						
					

Desempaquetar una colección

Si tienes una colección de valores en una lista, tupla, etc., Python te permite extraer los valores en variables. Esto se llama desempaquetar.

						
							>>> fruits = ["apple", "banana", "cherry"]
							>>> x, y, z = fruits
							>>> print(x)
							apple
							>>> print(y)
							banana
							>>> print(z)
							cherry
						
					

Imprimir variables

La función print() de Python se utiliza a menudo para generar variables.

						
							>>> x = "Python is awesome"
							>>> print(x)
							Python is awesome
						
					

En la función print(), se generan múltiples variables, separadas por una coma:

						
							>>> x = "Python"
							>>> y = "is"
							>>> z = "awesome"
							>>> print(x, y, z)
							Python is awesome
						
					

También puedes utilizar el operador + para generar múltiples variables:

						
							>>> x = "Python "
							>>> y = "is "
							>>> z = "awesome"
							>>> print(x + y + z)
							Python is awesome
						
					

Para los números, el carácter + funciona como un operador matemático:

						
							>>> x = 5
							>>> y = 10
							>>> print(x + y)
							15
						
					

En la función print(), cuando intentas combinar una cadena y un número con el operador +, Python te dará un error:

						
							>>> x = 5
							>>> y = "John"
							>>> print(x + y)
							
						
					
						
							Traceback (most recent call last):
							  File "", line 1, in 
							TypeError: unsupported operand type(s) for +: 'int' and 'str'
						
					

La mejor forma de generar múltiples variables en la función print() es separarlas con comas, que incluso admiten diferentes tipos de datos:

						
							>>> x = 5
							>>> y = "John"
							>>> print(x, y)
							5 John
						
					

Variables Globales

Las variables que se crean fuera de una función (como en todos los ejemplos de las páginas anteriores) se conocen como variables globales.

Las variables globales pueden ser utilizadas por cualquier persona, tanto dentro como fuera de las funciones.

Crea una variable fuera de una función y úsala dentro de la función

						
							>>> x = "awesome"
							>>> 
							>>> def myfunc():
							...   print("Python is " + x)
							... 
							>>> myfunc()
							Python is awesome
						
					

Si creas una variable con el mismo nombre dentro de una función, esta será local y solo podrá usarse dentro de la función. La variable global con el mismo nombre permanecerá como estaba, global y con su valor original.

Crea una variable dentro de una función, con el mismo nombre que la variable global

						
							>>> x = "awesome"
							>>> 
							>>> def myfunc():
							...   x = "fantastic"
							...   print("Python is " + x)
							... 
							>>> myfunc()
							Python is fantastic
							>>> 
							>>> print("Python is " + x)
							Python is awesome
						
					

La palabra clave global

Normalmente, al crear una variable dentro de una función, esta es local y solo puede usarse dentro de esa función.

Para crear una variable global dentro de una función, se puede usar la palabra clave global.

Si utilizas la palabra clave global, la variable pertenece al ámbito global:

						
						>>> def myfunc():
						...   global x
						...   x = "fantastic"
						... 
						>>> myfunc()
						>>> 
						>>> print("Python is " + x)
						Python is fantastic
						
					

Además, utilice la palabra clave global si desea cambiar una variable global dentro de una función.

Para cambiar el valor de una variable global dentro de una función, haga referencia a la variable utilizando la palabra clave global:

						
						>>> x = "awesome"
						>>> 
						>>> def myfunc():
						...   global x
						...   x = "fantastic"
						... 
						>>> myfunc()
						>>> 
						>>> print("Python is " + x)
						Python is fantastic
						
					

Tipos de datos en Python

Tipos de datos integrados

  • En programación, el tipo de dato es un concepto importante.
  • Las variables pueden almacenar datos de diferentes tipos, y cada tipo puede realizar funciones distintas.

Python tiene los siguientes tipos de datos integrados por defecto, en estas categorías:

Categoría Nombre
Text Type str
Numeric Types int, float, complex
Sequence Types list, tuple, range
Mapping Type dict
Set Types set, frozenset
Boolean Type bool
Binary Types bytes, bytearray, memoryview
None Type NoneType
Números en Python

Existen tres tipos numéricos en Python:

  • int
  • float
  • complex

Las variables de tipo numérico se crean cuando se les asigna un valor:

						
						>>> x = 1    # int
						>>> y = 2.8  # float
						>>> z = 1j   # complex
						>>> print(type(x))
						
						>>> print(type(y))
						
						>>> print(type(z))