In [1]:
"""
IPython Notebook v4.0 para python 2.7
Librerías adicionales: Ninguna.
Contenido bajo licencia CC-BY 4.0. Código bajo licencia MIT. (c) Sebastian Flores.
"""
# Configuracion para recargar módulos y librerías
%reload_ext autoreload
%autoreload 2
from IPython.core.display import HTML
HTML(open("style/iwi131.css", "r").read())
Out[1]:
In [3]:
r = 0.2
area = 3.14*r**2
print "Circulo de radio", r, "[m] tiene area", area, "[m2]"
r = 1.0
area = 3.14*r**2
print "Circulo de radio", r, "[m] tiene area", area, "[m2]"
r = 42.0
area = 3.14*r**2
print "Circulo de radio", r, "[m] tiene area", area, "[m2]"
¿Que pasa si necesitamos cambiar el texto? ¿O aumentar la precisión de $\pi$?
In [5]:
def area(r):
area = 3.14159236 * r**2
print "Circulo de radio", r, "[m] tiene area", area, "[m2]"
return
area(0.2)
area(1.0)
area(42.0)
Las funciones permiten encapsular código, permitiendo modificarlo más facilmente y reutilizarlo.
In [2]:
def f(x):
return int(x), 2*x-1, 3*int(x), x>0, "Cool"
val = f(0.0)
print val
In [21]:
# Es primo no es una función matematica
def es_primo(n):
n_es_primo = all(n%j!=0 for j in range(1,int(n**0.5)))
if n_es_primo:
print n, "es primo"
else:
print n, "no es primo"
In [23]:
es_primo(10000)
La fuerza de atracción gravitacional entre 2 planetas de masas $m_1$ y $m_2$ separados por una distancia de $r$ kilómetros esta dada por la fórmula: $$F = G \frac{m_1 m_2}{r^2}$$ donde $G=6.67428 \cdot 10^{-11}$ [m3, kg-1, s-2].
Escriba una función que pregunte las masas de los planetas y su distancia, y entregue la fuerza de atracción entre ellos.
In [24]:
# constante de gravitacion universal
G = 6.67428e-11
m1 = float(raw_input('m1 [kg]: '))
m2 = float(raw_input('m2 [kg]: '))
r = float(raw_input('Distancia [m]: '))
F = G * m1 * m2 / (r ** 2)
print 'La fuerza de atraccion es', F, "[N]"
In [27]:
def cgu(masa1, masa2, radio):
G = 6.67428e-11
G * masa1 * masa2 / (radio ** 2)
return
m1 = float(raw_input('m1: '))
m2 = float(raw_input('m2: '))
r = float(raw_input('Distancia: '))
print 'La fuerza de atraccion es', cgu(m1, m2, r)
Escriba la función promedio(n1,n2,n3) que reciba las notas de los 3 certamenes del ramo y retorne el valor del promedio final.
promedio(100,100,100) # Debería regresar el valor 100
promedio(80, 66, 31) # Debería regresar el valor 59
promedio(0, 0, 0) # Debería regresar el valor 0
In [32]:
def promedio(n1, n2, n3):
prom=(n1+n2+n3)/3.0
return prom
print promedio(100,100,100) # Debería regresar 100
print promedio(80, 66, 31) # Debería regresar 59
print promedio(0, 0., 1.) # Debería regresar 0.333333
print promedio(0, 0, 0) # Debería regresar 0
Escriba la función promedio(n1,n2,n3) que reciba las notas de los 3 certamenes del ramo y retorne el valor del promedio final.
promedio(100,100,100) # Debería regresar el valor 100
promedio(80, 66, 31) # Debería regresar el valor 59.0
promedio(0, 0, 0) # Debería regresar el valor 0
In [34]:
def promedio(n1, n2, n3):
suma = n1 + n2 + n3
prom = suma/3.
return prom
print promedio(100,100,100) # Debería regresar 100
print promedio(80, 66, 31) # Debería regresar el valor 59
print promedio(0, 0, 1) # Debería regresar 0.33333333
print promedio(0, 0, 0) # Debería regresar 0
Escriba la función promedio(n1,n2,n3) que reciba las notas de los 3 certamenes del ramo y retorne el valor del promedio final.
promedio(100,100,100) # Debería regresar el valor 100
promedio(80, 66, 31) # Debería regresar el valor 59
promedio(0, 0, 0) # Debería regresar el valor 0
In [ ]:
def promedio(n1, n2, n3):
return (n1 + n2 + n3)/3.0
print promedio(100,100,100) # Debería regresar 100
print promedio(80, 66, 31) # Debería regresar 59
print promedio(0, 0, 0) # Debería regresar 0
def nombre_de_mi_funcion(var_1, var_2, ..., var_n):
# Definicion de parámetros
# Inicializacion de variables
# Calculo de expresiones y valores
return val_1, val_2, ..., val_m
In [4]:
def que_hace(a,b):
print a*b
print a + b
return a + b + a*b
A = que_hace(1.,2)
#print a
Cuando se ejecuta una función, se crea un "espacio protegido" en el cual se ejecutan las acciones de la función.
In [43]:
def mi_funcion(a,b,c):
print "a =", a, "; b =", b, "; c =", c
a = b
b = c
c = True
print "a =", a, "; b =", b, "; c =", c
return a, b, c
x = 1.0
y = "hola"
z = 42
print "x =", x, "; y =", y, "; z =", z
X, Y, Z = mi_funcion(x,y, z)
print "x =", x, "; y =", y, "; z =", z
print "X =", X, "; Y =", Y, "; Z =", Z
#print "a=", a, "; b=", b, "; c=", c