You've already forked Curso-lenguaje-python
Restructure content and add notes from HolaMundo
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
108
python-total/dia_09/04_modulo_medir_tiempo.py
Normal file
108
python-total/dia_09/04_modulo_medir_tiempo.py
Normal file
@@ -0,0 +1,108 @@
|
||||
"""
|
||||
Módulo para medir tiempo
|
||||
|
||||
time - puedes realizar marcas de tiempo en el código
|
||||
para poder hacer comparaciones
|
||||
|
||||
timeit - Más especifico, muestra cuanto tarda en ejecutarse un código.
|
||||
|
||||
"""
|
||||
|
||||
import time
|
||||
import timeit
|
||||
|
||||
# Dos funciones con formas distintas
|
||||
# de hacer código
|
||||
# para el mismo resultado:
|
||||
|
||||
|
||||
def prueba_for(numero):
|
||||
""" Prueba de iteración for """
|
||||
lista = []
|
||||
for num in range(1, numero+1):
|
||||
lista.append(num)
|
||||
return lista
|
||||
|
||||
|
||||
def prueba_while(numero):
|
||||
""" Prueba de iteración while """
|
||||
lista = []
|
||||
contador = 1
|
||||
while contador <= numero:
|
||||
lista.append(contador)
|
||||
contador += 1
|
||||
return lista
|
||||
|
||||
|
||||
# Vamos a identificar cual de las dos funciones
|
||||
# resuelve de manera más eficiente
|
||||
# con el módulo time, haciendo
|
||||
# marcas de tiempo
|
||||
inicio = time.time()
|
||||
prueba_for(1000000)
|
||||
final = time.time()
|
||||
print(f' La función for tardó: {final - inicio}')
|
||||
|
||||
inicio = time.time()
|
||||
prueba_while(1000000)
|
||||
final = time.time()
|
||||
print(f' La función while tardó: {final - inicio}')
|
||||
|
||||
|
||||
print()
|
||||
# timeit puede identificar
|
||||
# cuanto tarda con más precisión
|
||||
"""
|
||||
Sintaxis:
|
||||
|
||||
duracion = timeit.timeit(declaracion, setup, number = numero)
|
||||
|
||||
declaracion: recibe el código que cuya duración
|
||||
de ejecución queremos medir.
|
||||
→ es la invocación mi función
|
||||
|
||||
setup: recibe las instrucciones que el parámetro
|
||||
declaracion requiere para funcionar.
|
||||
→ es la definición (def...) de mi función
|
||||
|
||||
number: cantidad de veces que se evaluará el
|
||||
código para obtener su tiempo de ejecución mínimo.
|
||||
→ pueden ser varios miles o cientos de veces (dependiendo de la complejidad)
|
||||
"""
|
||||
|
||||
declaracion = '''
|
||||
prueba_for(10)
|
||||
'''
|
||||
|
||||
mi_setup = '''
|
||||
def prueba_for(numero):
|
||||
""" Prueba de iteración for """
|
||||
lista = []
|
||||
for num in range(1, numero+1):
|
||||
lista.append(num)
|
||||
return lista
|
||||
'''
|
||||
|
||||
duracion_for = timeit.timeit(declaracion, mi_setup, number=10000000)
|
||||
|
||||
print(f' La función for tardó: {duracion_for}')
|
||||
|
||||
|
||||
declaracion2 = '''
|
||||
prueba_while(10)
|
||||
'''
|
||||
|
||||
mi_setup2 = '''
|
||||
def prueba_while(numero):
|
||||
""" Prueba de iteración while """
|
||||
lista = []
|
||||
contador = 1
|
||||
while contador <= numero:
|
||||
lista.append(contador)
|
||||
contador += 1
|
||||
return lista
|
||||
'''
|
||||
|
||||
duracion_while = timeit.timeit(declaracion2, mi_setup2, number=10000000)
|
||||
|
||||
print(f' La función while tardó: {duracion_while}')
|
||||
Reference in New Issue
Block a user