Clase 3-4: lo básico¶
Librerías
Funciones (intro)
Variables
Types
Listas
Arrays
Loops
Conceptos básicos clases anteriores:
Qué es python
Anaconda
Jupyter lab
Archivo notebook -> crear un nuevo notebook
Terminal
Ruta donde están nuestros archivos
Cómo instalar una librería usando conda o pip
1. Librerías¶
Antes de definir una librería necesitamos definir un módulo
. Corresponde a un archivo con un código de Python.
Entonces, una librería
va a ser una colección de módulos. Un paquete
va a ser una librería que podemos instalar mediante un package manager.
¿Para qué utilizamos una librería?
Cada librería va a contener una colección de módulos, por ejemplo, funciones que nos van a permitir realizar operaciones matemáticas, graficar, importar datos, etc.
En esta clase vamos a utilizar la librería numpy
(la instalamos la clase 2). Esta librería es fundamental para la computación científica, entregando un gran número de operaciones matemáticas.
Si no la tiene instalada aún, se puede hacer mediante el código pip install numpy. La documentación de numpy la encuentra en https://numpy.org/doc/stable/
Algunos ejemplos de qué podemos hacer con esta librería:
#1. Importar librería
import numpy as np
#2. usar librería para crear un vector
x = np.array([1,2,3])
#3. Realizar suma de valores dentro de un vector
np.sum(x)
#4. Valor absoluto
np.abs(x)
#5. Raíz cuadrada
np.sqrt(x)
#6. Transponer
np.transpose(x);
2. Funciones (intro)¶
Una función va a ser un código que almacena una tarea particular y puede ser llamada cuando uno quiera mediante el nombre de la función. Se le puede entregar un input y retorna un oputput.
En esta clase vamos a utilizar algunas funciones básicas como print() o type(). Las funciones se caracterizan por tener ‘nombre’ + ‘(input)’ o ‘nombre’ + ‘()’.
print('hola mundo')
x = 'hola mundo'
print(x)
print(x, type(x))
hola mundo
hola mundo
hola mundo <class 'str'>
3. Variables¶
Corresponden a un elemento que almacena información. Esta información puede tener diferentes types
o características.
En lo que sigue veremos como crear una variable y los difentes tipos.
4. Types¶
Los lenguajes de programación tienen tipos
de datos. Cada uno tiene diferentes propiedades y sirve para diferentes acciones.
Python tiene los siguientes tipos de datos:
Texto:
str
Número:
int
,float
,comlex
Secuencial:
list
,tuple
,range
Mapping:
dict
Set:
set, frozenset
Boolean:
bool
Binario:
bytes
,bytearray
,memoryview
Ejemplos¶
x = "Hola mundo"
print(x, type(x))
Hola mundo <class 'str'>
x = 20
print(x, type(x))
20 <class 'int'>
x = 20.5
print(x, type(x))
20.5 <class 'float'>
x = 1j
print(x, type(x))
1j <class 'complex'>
x = ["gatos", "perros", "canarios"]
print(x, type(x))
['gatos', 'perros', 'canarios'] <class 'list'>
x = ("gatos", "perros", "canarios")
print(x, type(x))
('gatos', 'perros', 'canarios') <class 'tuple'>
x = range(5)
print(x, type(x))
range(0, 5) <class 'range'>
x = {"gatos":2, "perros":3}
print(x, type(x))
{'gatos': 2, 'perros': 3} <class 'dict'>
x = True
print(x, type(x))
True <class 'bool'>
Ejercicios:¶
Strings (texto)
Int - Float
Boolean
¿Cómo creamos una variable de texto?
#Para crear un string debe ser entre comillas
x = hola
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-12-48173a3c27f5> in <module>
1 #Para crear un string debe ser entre comillas
----> 2 x = hola
NameError: name 'hola' is not defined
#Se pueden agregar
x = 'hola'
y = "mundo"
z = x + y
print(z)
holamundo
#Se pueden crear de diferentes maneras
x = "hola"
y = "mundo"
z = x + " " + y + "\n" + "un número puede ser string: " + "10 o " + str(10)
print(z)
hola mundo
un número puede ser string: 10 o 10
#Un número puede ser string -> no se pueden hacer operaciones matemáticas
x = "10"
y = "10"
z = x+y
print(z)
1010
Una variable del tipo numérica nos permite realizar operaciones matemáticas
x = 10
y = 20.5
z = x + y
print(z)
30.5
x = (2 * 5 + 10)**2
print(x)
400
¿Se pueden juntar variables de diferentes tipos?
x = '10'
y = 10
z = x + y
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-47-013104e6ffaf> in <module>
1 x = '10'
2 y = 10
----> 3 z = x + y
TypeError: can only concatenate str (not "int") to str
x = '10'
x = int(x)
y = 10
z = x + y
print(z)
20
¿Cómo evalúo si se cumple una condición?
z == 10
False
x = True
y = False
print(x + y)
print(x + x)
print(y + y)
1
2
0
¿Se puede guardar una condición como variable?
x = 10
variable = x != 11
print("variable= ",variable)
variable= True
x = 10
y = x != 11
print(y)
True
Para evaluar un “o” se utiliza “or”, mientras que para un “y” se usa “and”
print(x == 10 or y == False)
print(x == 10 and y == False)
print(x > 10 and y == True)
print(x <= 10 and y == True)
True
False
False
True
5. Listas¶
Una lista va a ser un contenedor de información. Permite diferentes types
.
Para crear una lista se pueden usar dos métodos:
Usando “[]”
o usando list()
x = ['a', 1, 1.1, True]
print(x)
['a', 1, 1.1, True]
Otra forma de crear listas:
x = list()
y = [x, x ]
print(y)
[[], []]
¿Se puede acceder a los elementos de una lista?
x = ['a', 1, 1.1, True]
print(x[0])
print(x[1])
print(x[2])
a
1
1.1
Posición en una lista
La posición parte del índice 0.
Si la lista es [a, b, c], la posición de cada elemento será [0, 1, 2].
¿Se pueden hacer operaciones matemáticas con listas?
print(x + x)
['a', 1, 1.1, True, 'a', 1, 1.1, True]
y si son sólo elementos numéricos?
x = [1, 2]
y = [2, 2]
print(x + y)
print(x*x)
[1, 2, 2, 2]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-36-d32218a19255> in <module>
2 y = [2, 2]
3 print(x + y)
----> 4 print(x*x)
TypeError: can't multiply sequence by non-int of type 'list'
Si podemos realizar operaciones matemáticas sobre los elementos de una lista
print(x[0] + y[1])
3
¿Cómo agregar elementos a una lista?
x = list()
x.append(10)
x.append('hola')
print(x)
[10, 'hola']
Para acceder al total de elementos de una lista usamos la función len()
len(x)
2
Para borrar elementos podemos usar pop() o remove()
x = [10, 'hola']
x.pop(0)
print(x)
['hola']
x = [10, 'hola']
x.remove(10)
print(x)
['hola']
6. Arrays¶
Cuando queremos hacer operaciones matemáticas con vectores o matrices vamos a utilizar arrays
.
Para esto usamos numpy
: import numpy as np
import numpy as np
x = [1,2,3,4,5]
x_arr = np.array(x)
print("x:", x)
print("x_arr:", x_arr)
x: [1, 2, 3, 4, 5]
x_arr: [1 2 3 4 5]
print(type(x))
print(type(x_arr))
<class 'list'>
<class 'numpy.ndarray'>
La ventaja de usar arrays es que nos permite hacer operaciones matemáticas
x = np.array([0, 1, 2])
print(x + x)
print(x * 2)
print(x*x)
[0 2 4]
[0 2 4]
[0 1 4]
x = [[1, 2], [3, 4]]
x = np.array(x)
print(x)
print("len:", len(x), " x ", len(x[0]))
[[1 2]
[3 4]]
len: 2 x 2
¿Si tenemos un vector y una matriz cómo realizamos una multiplicación?
x = np.array([[2, 2], [2, 2]])
#1. Multiplicación de cada elemento de la matriz
print("Caso 1:\n", x * x)
#2. Multiplicación de matrices
print("Caso 2:\n", x @ x)
Caso 1:
[[4 4]
[4 4]]
Caso 2:
[[8 8]
[8 8]]
7. Loops¶
Vamos a utilizar loops
para crear iteraciones sobre una secuencia, un rango determinado, por ejemplo una lista, de 0 a 10, etc.
Para crear una iteración vamos a usar for
for i in range(0, 10):
print(i)
0
1
2
3
4
5
6
7
8
9
x = [0, 1, 'a', True]
for i in range(0, len(x)):
print(i)
0
1
2
3
x = np.array([0, 1, 2, 3])
for i in range(0, len(x)):
print(i)
0
1
2
3
x = [0, 1, 'a', True]
for i in x:
print(i)
0
1
a
True
x = [1, 2, 3]
y = [4, 5 ,6]
for i in range(0, len(x)):
print(x[i] + y[i])
5
7
9
x = [1, 2, 3]
y = [4, 5 ,6]
for i in x:
for j in y:
print((i,j))
(1, 4)
(1, 5)
(1, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 4)
(3, 5)
(3, 6)
Sintaxis va a ser la estructura del código.
#nombre de la variable, signo = , valor
x = 10
#lista: nombre de la lista, signo = , [ valor ]
x = [10, 20]
#Iteración: for, iterador 'i', entre 'in', rango o lista (range(0, 10), [1,2,3]), ':'
for i in range(0, 10):
print(i)
#Una vez me salgo del espacio se acaba la iteración
x = 10
0
1
2
3
4
5
6
7
8
9
x = 10
z = 'b'
a = list()
print(a)
a.append(x)
print(a)
a = [x, z]
print(a)
a.append('b')
print(a)
[]
[10]
[10, 'b']
[10, 'b', 'b']
Actividad en clases¶
¿Cuál es la diferencia entre una librería y una función? de un ejemplo de cada una.
¿Cuál es la diferencia entre un type y una variable? muestre con un ejemplo de código.
¿Cuál es la diferencia entre una lista y un array?
¿Para qué nos sirve un loop?
Crear 5 variables que se llamen “var_” + type: str, float, int, bool, list. Estas variables deben ser del type respectivo.
¿De qué type son las siguientes operaciones?
10*10.5
True*False
True*10
str(10) + str(20.5)
int(str(10)) + float(str(20.5))
int(10.5)
[1, 10., “a”]
Crear un array de 2x2 que tenga los elementos (1,2,3,4) y mostrar cómo se puede acceder al elemento 4.
evalúe si [1,2,3] es igual a np.array([1,2,3]). Entregue una intuición.
Utilice
for
yprint()
para mostrar mediante un loop números de 0 al 10 y luego otro loop para mostrar los elementos del 5 al 10.El siguiente código tiene un error. El objetivo es sumar los iteradores en un loop. Explique el problema que tiene el código y por qué no llega al resultado (45).
for i in range(10):
x = 0
x = x+i
x
9