Practica Python
Practica Python
Practica Python
de Matemática
Introducción a Python.
Software: Dadas las condiciones actuales, usaremos python para la parte computacional
de la materia. Hay dos opciones para correr los programas en sus computadoras:
• Para poder instalar python3 en sus computadoras, la opción más sencilla es instalar
Anaconda, y spyder3. Encontrarán Anaconda en este link. En windows, Anaconda
instala también spyder3, y en Ubuntu, puede que tengan que también hacer un sudo
apt install spyder3.
• Si nada de esto funciona, o no tienen ganas de instalar python, lo elegimos porque existen
página que nos permiten correr programas desde internet. En esta materia vamos a usar
repl.it. Haganse una cuenta y a programar!
Vamos a escribir los programas en scripts. Cada script es una serie de instrucciones que la
computadora realiza, para llegar a cierto resultado de interés. Como en la vida, puede haber
varias formas de llegar al mismo resultado, cada una con ventajas y desventajas. Checkeen los
videos introductorios en la página de la materia, y soloLearn para una intro a las sentencias
básicas de python!
Pequeño glosario:
1
• Correr (el programa, script): Le llamamos correr al acto de enviar a la computadora el
programa para que lo procese.
• Consola: (ver Figura 1). La consola es el espacio en la pantalla en el cual se envı́an las
instrucciones para que la computadora las realice.
• Variables: Las variables son signos asociados a espacio en la memoria en las cuales
podemos asignar valores (ej: x= 5). Siempre la asignación se realiza con la variable a
la izquierda (nunca 5 = x).
Ejercicio 1. Aritmética. En el nivel más básico, python funciona como calculadora. Prueben
escribir en la consola :
b) [x, y] i) print(y)
c) x + y j) y*2
d) z = x+y k) y.append(100);y
f) w = [x,y] m) z[2:4]
g) x[0]=0;w n) z[:5]
Ejercicio 3. Vectores. En el ejercicio anterior vimos que en muchos aspectos las listas
no se comportan como lo que querrı́amos: como vectores en RN . Si bien son buenas para
representar secuencias, no nos permiten, por ejemplo, sumar dos vectores. Para cumplir con
esta necesidad, python nos ofrece el paquete numpy, que nos permite crear arrays que funcionan
bastante acorde a lo que esperamos. Para incorporar las funciones de numpy, incorporamos
(o escribimos en la consola) la sentencia:
import numpy as np
2
y tendremos acceso a todas las funciones de numpy, agregandoles el prefijo np.. Entre
estas funciones, están las que usamos habitualmente como cos, sin, sqrt (raı́z cuadrada),
log (logaritmo en base e), ası́ como los números e o π
c) x + y j) A = np.array([[1,2,3,4],[5,6,7,8]]);A
d) np.linspace(1,8,10) k) A*x
e) np.arange(8,1,-1) l) np.dot(A,x)
f) np.log(x) m) np.dot(x,x)
g) np.cos(np.pi) n) np.transpose(A)
Ejercicio 4. Prueben generar las siguientes secuencias, con las funciones que vimos hasta
aquı́.
for(i in [1,2,3]):
print(i)
k=0
for i in [1,2,3]:
k = k + i
if k>2:
print(k)
3
k=0
for i in [1,2,3]:
k = k + i
if k>2:
print(k)
El ciclo while combina ambas funcionalidades. Por ejemplo (x=[] genera una lista vacı́a):
k=0
x= []
while k < 10:
k = k + 1
x.append(k)
print(x)
Basandose en estas herramientas, construyan un código que:
• a) Encuentre los números cuyas raices cuadradas son enteras y menores que 10.
• b) Encuentre los números primos menores a 100 (ayuda: la función np.mod(x,y) calcula
el resto de la división entre x e texttty).
Ejercicio 6. Funciones definidas por el usuario Todo lenguaje de programación ra-
zonable tiene una manera de permitir al usuario definir una función. Podemos pensar esta
funcion como un pequeño conjunto de instrucciones que anotamos, para no tener que repetir
su escritura futuras veces. La sintaxis es la siguiente:
def nombre_de_la_funcion(arg1,arg2,...):
primer instruccion
segunda instruccion
...
donde son fundamentales la identacion y los dos puntos. Para que la función retorne un valor,
debemos indicar un retorno:
def dos_equis(x):
resultado = 2*x
return(resultado)
Luego de su definición, podemos usarlas como usamos la función cos, u otras.
• a) Construya una función que reciba los lados de un triángulo, y calcule los ángulos que
forman.
• b) Reciba un número, y devuelva todos los números primos hasta ese número.
Ejercicio 7. Veamos como graficar en python. Partimos de:
import numpy as np
x= np.linspace(0,10,20)
y = x**2
4
En python, las funciones para graficar las encontramos en matplotlib.pyplot. Lo importa-
mos: import matplotlib.pyplot as plt Con los siguientes comandos graficamos x contra
y, ponemos nombre a los ejes, un limite, y guardamos la figura:
plt.plot(x,y)
plt.xlabel('Equis')
plt.ylabel('Ye')
plt.xlim(0,10)
plt.ylim(0,100)
plt.savefig('equisye.png')
Ejercicio 8. Matrices. Previamente, vimos que numpy nos permite construir una matriz con
el comando np.array(), y dandole como argumento listas con listas: A=np.array([[1,2],[3,4]].
Para acceder a los elementos de una matriz en python podemos usar las tuplas, que se rep-
resentan por una serie de números entre paréntesis. Por ejemplo, A[(1,1)] es 1, y A[(2,1)]
es 3. Algunas otras funciones útiles:
• np.ones(q) donde q puede ser un entero o una n-tupla, devuelve una matriz con filas y
columnas según q. Por ejemplo, np.ones((2,2)) devuelve una matriz de 2x2 llena de
unos.
• np.full(q,value) funciona igual a np.ones pero llena la matriz con el valor value.
• Una función que genere la matriz identidad, a partir de una dada dimension.
5
a) def y(x):
result = 1
for i in range(1,x+1,1):
result=result*i
return(result)
b) def y(x):
if np.floor(x)-x<0:
print('X no es entero.')
result = NaN
else:
if x==0:
result = 1
else:
result=1
for i in range(1,x+1,1):
result = result*i
return(result)
c) def m(x):
n = len(x)
a = x[0]
for i in range(2,n):
if x[i]<a:
a = x[i]
return(a)
6
d) def A(n):
A = []
for i in range(n):
a = []
for j in range(n):
if i==j:
a.append(1)
else:
a.append(0)
A.append(a)
A = np.asarray(A)
return(A)
e) a = 1
while not (a+1)==1:
a = a/2
a
f) def g(x):
y = 1
z = 0
i = 1
while not y==z:
z = y;
y = y+x^i/f(i);
i = i+1;
return(y)
Nota: f(i) es la función del item a).
Ejercicio 10. Escribir un programa que reciba como input una lista y calcule su elemento
máximo.
Ejercicio 11. Modificar el programa del ı́tem anterior para que devuelva el elemento máximo
pero también el primer ı́ndice en el que este máximo se realiza.
Ejercicio 12. Escribir un programa que reciba como input una matriz (array de dos dimen-
siones) y calcule su elemento máximo. ¿Funciona este programa si en lugar de una matriz se
ingresa un vector?
Nota: Conviene estudiar los comandos np.max(A) y np.argmax(A), para A una matriz.
Comparen los resultados con lo que obtendrian estirando la matriz como un vector de nm
componentes, con n el numero de filas y m el de columnas de A