28.06.2017 Views

Python para todos

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Python</strong> <strong>para</strong> <strong>todos</strong><br />

Tomemos como ejemplo la siguiente función, que devuelve una lista<br />

con los cuadrados de <strong>todos</strong> los números que componen la lista pasada<br />

como parámetro:<br />

def cuadrados(lista):<br />

“””Calcula el cuadrado de los numeros de una lista”””<br />

return [n ** 2 for n in lista]<br />

Podríamos crear una prueba como la siguiente, en la que comprobamos<br />

que el resultado al pasar la lista [0, 1, 2, 3] es el que esperábamos:<br />

def cuadrados(lista):<br />

“””Calcula el cuadrado de los numeros de una lista<br />

>>> l = [0, 1, 2, 3]<br />

>>> cuadrados(l)<br />

[0, 1, 4, 9]<br />

“””<br />

return [n ** 2 for n in lista]<br />

Lo que hacemos en este ejemplo es indicar a doctest que cree un lista l<br />

con valor [0, 1, 2, 3], que llame a continuación a la función cuadrados<br />

con l como argumento, y que compruebe que el resultado devuelto<br />

sea igual a [0, 1, 4, 9].<br />

Para ejecutar las pruebas se utiliza la función testmod del módulo, a la<br />

que se le puede pasar opcionalmente el nombre de un módulo a evaluar<br />

(parámetro name). En el caso de que no se indique ningún argumento,<br />

como en este caso, se evalúa el módulo actual:<br />

def cuadrados(lista):<br />

“””Calcula el cuadrado de los numeros de una lista<br />

>>> l = [0, 1, 2, 3]<br />

>>> cuadrados(l)<br />

[0, 1, 4, 9]<br />

“””<br />

return [n ** 2 for n in lista]<br />

def _test():<br />

import doctest<br />

doctest.testmod()<br />

136

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!