Escribir una función que indique si dos fichas de dominó encajan o no. Las fichas son recibidas en dos tuplas, por ejemplo: (1,3) y (5,3).
In [6]:
# Sol:
x = (3,2)
y = (5,3)
def encaja(x, y):
if x[0] == y[0]:
print("Encajan en la posición X[0] Y[0]")
elif x[0] == y[1]:
print("Encajan en la posición X[0] Y[1]")
elif x[1] == y[0]:
print("Encajan en la posición X[1] Y[0]")
elif x[1] == y[1]:
print("Encajan en la posición X[1] Y[1]")
else:
print("Las fichas no encajan")
return
encaja(x,y)
Define la función media para calcular la media aritmética de los elementos de una lista pasada como parámetro.
(Otra forma: Usando las funciones sum y len).
Nota: Comprueba que se obtienen los siguientes resultados:
In [29]:
# Sol:
a = list(range(1,400,2))
b = [1,2,4,8,16,32]
def media(a):
for i in a:
i = sum(a) / len(a)
return i
media(a)
Out[29]:
La función farenToCentig convierte grados Farenheit en grados centígrados.
0:º F = -18.0º C
10:º F = -13.0º C
20:º F = -7.0º C
...
100:º F = 37.0º C
110:º F = 43.0º C
120:º F = 48.0º C
Nota:
In [12]:
# Sol :
F = list(range(0,130,10))
def farenToCentig(F):
return (F-32)*(5/9)
In [15]:
for i in F:
cent = farenToCentig(i)
conversion = round(cent)
print( '%d ºF = %.1f ºC' % (i,conversion))
Los 15 primeros números triangulares son:
$$ [0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105] $$Define una función triang_1 que reciba un número entero positivo $n$ como parámetro y genere la lista de los $n$ primeros números triangulares. Resuelve el problema aplicando la fórmula $a_n = n * (n + 1) / 2$.
Define una función triang_2 que reciba un número entero positivo $n$ como parámetro y genere la lista de los $n$ primeros números triangulares. Resuelve el problema aplicando la fórmula $a_n = a_{n-1} + n$.
Utiliza la función %timeit para medir tiempos y evaluar qué función se comporta mejor.
In [22]:
# Sol:
def triang_1(n):
a = []
for i in range(n):
an = i * (i + 1 ) / 2
a.append(an)
return a
def triang_2(n):
a = [0]
for i in range(1,n):
a.append(a[i-1]+i)
return a
def triang_3(n):
return [(i*(i+1)/2) for i in range(n)]
%timeit triang_1(30)
%timeit triang_1(30)
%timeit triang_3(30)