Logo Studenta

Clase 2 - Introducción a la programación con Python (Parte I)

¡Este material tiene más páginas!

Vista previa del material en texto

Introducción a la programación con Python (Parte I)
 Clase 02. Data Science
¿DUDAS DEL ON-BOARDING?
MIRALO AQUI
RECUERDA PONER A GRABAR LA CLASE
Realizar una primera aproximación al lenguaje de programación Python.
Conocer las distintas formas de desarrollo con Python.
OBJETIVOS DE LA CLASE
MAPA DE CONCEPTOS
MAPA DE CONCEPTOS CLASE 2
Formas de desarrollo con Python
Interpretado vs Compilado
Toma de contacto con Python
Programación y lenguajes
Python como lenguaje
IPython y notebooks
Python tradicional
Funciones
Estructuras
Tipos de datos
Basics: Variables, asignación, operaciones
Clase 2
Introducción a la programación con Python (Parte I)
Clase 3
Introducción a la programación con Python (Parte II)
CRONOGRAMA DEL CURSO
Clase 1
La necesidad de información en la Industria 4.0
TRANSFORMACIÓN DIGITAL
ESTRATEGIA DATA-DRIVEN
NOCIONES BÁSICAS
PRÁCTICA CON FUNCIONES
TOMA DE CONTACTO CON PYTHON
Idea: Plantear por objetivos
Desde el principio:
Programación y Python
¿Qué es la programación?
“Programar es darle instrucciones a la computadora para que realice una función específica.”
¿Qué es la programación?
La programación es una forma de ejecutar un algoritmo.
Un algoritmo es una secuencia de pasos que lleva a un resultado.
Una receta es un algoritmo.
Si se sigue el algoritmo, se llega al resultado.
Programa y computadora
La computadora nació para resolver cálculos.
La programación es un complemento para la computadora.
Es una forma de que la computadora entienda el funcionamiento de un algoritmo y lo ejecute.
La computadora entiende ceros y unos (lenguaje binario), nosotros no.
Por lo tanto, un programa traduce un lenguaje humano a lenguaje binario.
Programación y lenguajes
No existe un solo lenguaje que solucione todos los problemas
Cada lenguaje resuelve un conjunto de problemas posibles: Empresariales, Web, etc.
Para Data Science, existen algunos lenguajes que funcionan muy bien: Python, R, Julia y Scala son algunos de ellos.\
Python
R
Julia
Scala
Python rocks!
Python es el lenguaje más solicitado en las búsquedas laborales relacionadas con Data Science y se ubica entre el segundo y tercer puesto en 2021 de acuerdo a varios rankings de lenguajes de desarrollo general (no sólo Data Science).
En otras palabras, Python no puede faltar en un portfolio de Data Science.
¿Interpretado o Compilado?
PYTHON ES UN LENGUAJE INTERPRETADO,
ESTO QUIERE DECIR QUE:
Usa un programa intérprete que traduce en tiempo casi real nuestras órdenes a binario.
La traducción se hace línea por línea.
Podemos probar código “de a pedacitos”.
El lenguaje compilado se traduce todo junto al final.
No es simplemente una mejora, es una forma de trabajar muy útil para Data Science.
Python en pocas palabras
(PYTHON IN A NUTSHELL)
Lenguaje Open Source
(un código abierto y accesible diseñado para que cualquier pueden ver, modificar y distribuirlo).
Su fuerte es la simplicidad y la facilidad para compartir código.
Cuenta con 3 componentes:
Intérprete: programa intérprete, traductor a binario.
IDE: entorno de desarrollo, lugar donde escribiremos código.
Paquetes: conjuntos de funciones pre-armadas para problemas habituales.
Formas de desarrollo con Python
🔗 Guía de instalación de Python con Miniconda, Jupyter notebooks y Google Colab
Python tradicional
Tradicionalmente Python puede desarrollarse en Anaconda, o en su versión simplificada, Miniconda.
Además, puede utilizarse de varias otras formas.
La forma más básica es escribiendo python en la terminal, lo que abre un entorno de trabajo dentro de la misma terminal.
⚠ NO es la forma más cómoda, ni la más utilizada.
Otra forma más útil es usando Python interactivo (IPython). Puede accederse escribiendo ipython en la terminal.
⚠ No aporta muchas mejoras si se usa de esa forma.
¡Existe una forma mejor! 💪
IPython y notebooks
Las notebooks siguen siendo IPython, pero con vitaminas 🚀
Escribimos código en el navegador que resulta ser el IDE.
El código pasa por el mismo intérprete que el que usa la terminal, pero todo se trabaja en el navegador.
El código se escribe en cajas de texto que pueden ejecutarse de a una o todas juntas.
El conjunto total de cajas de texto es una notebook.
👉 Esta configuración SÍ es de las más utilizadas para Data Science.
‹#›
Primeros pasos con Python
Crear un Notebook vacío
Crear una variable nombre y asignarle su nombre
¿Qué ocurre si no ponemos las comillas?¿Y si en lugar de comillas simples usamos dobles?
Crear una variable edad y asignarle su edad
¿Qué ocurre si ponemos el número entre comillas? ¿Cuál será la diferencia? ¿Y si ponemos un número “con coma”?
Imprimir en pantalla su nombre y edad
¿Alguna forma es mejor?
Tiempo estimado: 15 minutos. Si alcanza, dejar que experimente solos un rato.
Mentores: mencionar que las celdas se ejecutan con shift + enter o con el botón con forma de “play” del menú superior o a la izquierda de la celda en Colab.
Empezamos dando algunos ejercicios y demostraciones sencillas, sin formalizar todavía ningún tipo de dato. El objetivo es que aquellos alumnos que nunca programaron empiecen a ver de qué se trata. Incentivamos a que los alumnos charlen con sus compañeros mientras hacen estos ejercicios, así los más avanzados ayudan a los más nuevos.
¿Qué ocurre si no ponemos las comillas? Mostrar que python nos tira un error. Explicar que es MUY importante leer los errores, ya que nos dan información sobre lo que está sucediendo.
¿Qué ocurre si ponemos el número entre comillas?¿Cuál será la diferencia?¿Y si ponemos un número “con coma”? Todavía no formalizamos, pero mencionamos la diferencia entre un string, un float y un entero.
¿Alguna forma es mejor? El objetivo de esta pregunta es que vean que no hay una única forma de hacer las cosas, pero a veces algunas son más convenientes, dependiendo del contexto.
NOCIONES BÁSICAS DE PROGRAMACIÓN
Basics: Variables, asignación, expresiones
Pensemos en una fórmula
Pensemos en una fórmula
En la expresión x + y = z queremos representar que la suma de los números x e y dará como resultado el número z
Si lo quisiéramos programar, podríamos pensarlo así:
Ingresar un número, que cumplirá el rol de la x
Ingresar un número, que cumplirá el rol de la y
Decirle a la computadora que efectúe la suma de x e y
Al resultado lo haremos cumplir el rol de la z
Mostrar al usuario el valor de z como resultado
Pensemos en una fórmula
Toda vez que a un símbolo le damos un valor (x = 2) estamos haciendo una asignación. En Python:
x = 2 		#asignamos números
y = 3
z = x + y 	#realizamos la suma
z 			#en z se encuentra el resultado
5			#se muestra el resultado
Cada parte del código “compuesta” que represente un valor concreto (x + y) es una expresión.
Este razonamiento es análogo a las expresiones matemáticas.
Objetos y punteros
Python es un lenguaje orientado a objetos
Es así que en Python todo es un objeto, o sea, cuenta con:
Datos
Metadatos, atributos o propiedades (un punto y una palabra sin paréntesis):
X.atributo 👉 Un atributo caracteriza al dato
Funcionalidad o métodos (un punto y una palabra con paréntesis):
x.método() 👉 Un método es algo que el dato puede hacer, por lo tanto al ejecutarlo le estamos pidiendo al dato que ejecute una acción
Aquí, real e imag son propiedades de x que muestran su parte real y su parte imaginaria.
Por otra parte, el ejemplo de la sección anterior nos muestra la forma de trabajar con punteros (pointers). A diferencia de otros lenguajes donde las variables se comportan como contenedores de datos, las variables en Python son punteros. Esto significa que no contienen un valor, sino que apuntan a un dato que se encuentra en la memoria. De esta forma, si asignamos una variable a otra (y = x), simplemente le estamos diciendo a ambas que apunten al mismo dato (la lista [1, 2, 3]). En su forma más específica, la operación “=” realiza la conexión entre el puntero y el dato.En cambio, la aplicación de métodos (por ejemplo append()) cambia el dato de destino. 
Esta diferencia es sutil y en la práctica no afecta el trabajo de Data Science. No obstante trae mejoras sustanciales en la performance y es importante tenerla en cuenta para no cometer errores en la programación.
Objetos y punteros
x=1.0
x.is_integer() # ¿es x un entero? se lo preguntamos con el método is_integer()
x=1.4
x.is_integer() # ¿y ahora? se lo preguntamos de vuelta
print(x.real,x.imag) 	# miramos los atributos de x, en este caso su parte real 
# y su parte imaginaria
Objetos y punteros
Las variables en Python no contienen los datos, sino que apuntan a los datos. 
Esta es la forma de trabajo de los punteros, lo que hace que el lenguaje sea más eficiente.
Aquí, real e imag son propiedades de x que muestran su parte real y su parte imaginaria.
Por otra parte, el ejemplo de la sección anterior nos muestra la forma de trabajar con punteros (pointers). A diferencia de otros lenguajes donde las variables se comportan como contenedores de datos, las variables en Python son punteros. Esto significa que no contienen un valor, sino que apuntan a un dato que se encuentra en la memoria. De esta forma, si asignamos una variable a otra (y = x), simplemente le estamos diciendo a ambas que apunten al mismo dato (la lista [1, 2, 3]). En su forma más específica, la operación “=” realiza la conexión entre el puntero y el dato. En cambio, la aplicación de métodos (por ejemplo append()) cambia el dato de destino. 
Esta diferencia es sutil y en la práctica no afecta el trabajo de Data Science. No obstante trae mejoras sustanciales en la performance y es importante tenerla en cuenta para no cometer errores en la programación.
¿Cuáles son las salidas de los siguientes bloques de código?
¡ESCRÍBELO EN EL CHAT!
PRÁCTICA RÁPIDA
En la siguiente slide se encuentra la imagen ampliada. Recomendamos que las respuestas se hagan de a una por línea de código.
Simplemente es la imagen ampliada.
¿No notaste algo raro en el ejercicio anterior...?
☕ 
BREAK
¡5/10 MINUTOS Y VOLVEMOS!
Objetos y punteros
Cuando operamos sobre una variable (método) operamos sobre el objeto al que apunta.
Cuando realizamos una asignación (=) conectamos (apuntamos) la variable al objeto. Aquí no cambiamos el objeto.
Objetos y punteros
x = [1, 2, 3] 	# x es una lista
y = x 			# el objeto al que apunta x ([1, 2, 3]) ahora es también 
				# apuntado por y
print(y is x) 	# x e y son el mismo objeto (True)
print(x,y)		# [1, 2, 3] [1, 2, 3]
x.append(4) 		# aquí operó sobre el objeto [1, 2, 3] apuntado por x.
				# Los métodos se identifican luego de un punto (x.método()) 
print(y) 		# como x e y apuntan al mismo objeto, y refleja los cambios
x = "hola" 		# al realizar asignación, ahora x apunta al objeto texto 
				# (string) "hola" 
print(x is y) 	# x e y ahora no apuntan al mismo objeto (False)
print(x,y) 		# x e y apuntan a dos objetos diferentes (“hola” [1, 2, 3, 4])
Objetos y punteros
La diferencia es muy sutil y en general no afecta el trabajo de Data Science. No obstante, no todos los lenguajes se comportan así.
⚠ Hay que tener en cuenta esto para no cometer errores. 
Un método comienza por un punto después de la variable.
El método modifica el objeto apuntado por la variable.
La variable no es, ni contiene al objeto.
La asignación “conecta” a la variable con el objeto apuntado.
Aquí, real e imag son propiedades de x que muestran su parte real y su parte imaginaria.
Por otra parte, el ejemplo de la sección anterior nos muestra la forma de trabajar con punteros (pointers). A diferencia de otros lenguajes donde las variables se comportan como contenedores de datos, las variables en Python son punteros. Esto significa que no contienen un valor, sino que apuntan a un dato que se encuentra en la memoria. De esta forma, si asignamos una variable a otra (y = x), simplemente le estamos diciendo a ambas que apunten al mismo dato (la lista [1, 2, 3]). En su forma más específica, la operación “=” realiza la conexión entre el puntero y el dato. En cambio, la aplicación de métodos (por ejemplo append()) cambia el dato de destino. 
Esta diferencia es sutil y en la práctica no afecta el trabajo de Data Science. No obstante trae mejoras sustanciales en la performance y es importante tenerla en cuenta para no cometer errores en la programación.
Operadores
Los operadores permiten trabajar sobre las variables, a la manera de las operaciones matemáticas.
Cada operador da un resultado como salida.
Identificamos 4 tipo de operadores:
Operadores aritméticos
Operadores de asignaciones
Operadores de identidad y pertinencia
Operadores aritméticos
	Aritméticos	
	a + b	Suma
	a - b	Resta
	a * b	Multiplicación
	a / b	División
	a // b	División entera (resultado sin decimal)
	a % b	Módulo (resto de la división entera)
	a ** b	Exponenciación
	-a	Negativo
Los operadores aritméticos son directamente operaciones matemáticas estándar.
Operadores de asignaciones
	Asignaciones	
	a += b	a = a + b
	a -= b	a = a - b
	a *= b	a = a * b
	a /= b	a = a / b
	a //= b	a = a // b
	a %= b	a = a % b
	a **= b	a = a ** b
Los asignadores simplifican operadores aritméticos comunes.
Operadores de comparación
	Comparadores	
	a == b	a igual a b
	a != b	a distinto de b
	a < b	a menor a b
	a > b	a mayor a b
	a <= b	a menor o igual que b
	a >= b	a mayor o igual que b
Los comparadores dan resultados lógicos (si/no, true/false)
Operadores de identidad y pertenencia
	Identidad y pertenencia	
	a is b	a es el mismo objeto que b
	a is not b	a no es el mismo objeto que b
	a in b	a está contenido en b
	a not in b	a no está contenido en b
Los operadores de identidad y pertenencia verifican relaciones entre objetos.
Dentro de esta categoría, los operadores “in”, como casos particulares, buscan objetos dentro de listas. ¡Son muy útiles!
¿QUIERES SABER MÁS? TE DEJAMOS MATERIAL AMPLIADO DE LA CLASE
Guía de instalación de Python con Miniconda, Jupyter notebooks y Google Colab | Guillermo Leale
Disponible en nuestro repositorio.
https://learnxinyminutes.com/docs/python3/ - Exclusivo sobre programación en Python, sin mucho contexto y directo al grano. Minimalista, pero detallado.
https://www.tutorialsteacher.com/python - Muy completo. Útil para “tener a mano”.
big data, de Walter Sosa Escudero - Libro Divulgativo 
Disponible en nuestro repositorio.
¿PREGUNTAS?
¡MUCHAS GRACIAS!
Resumen de lo visto en clase hoy: 
Programar en Python: ¿de qué se trata y qué hay que tener en cuenta?
OPINA Y VALORA ESTA CLASE
#DEMOCRATIZANDOLAEDUCACIÓN

Continuar navegando

Materiales relacionados

136 pag.
Python para Principiantes

User badge image

pilarsimonwilliam

88 pag.
Introduccion-a-Python

User badge image

pilarsimonwilliam

516 pag.
Python

User badge image

Alejandra Leon

714 pag.
Python-para-análisis-de-datos

SIN SIGLA

User badge image

mario_roldan123