Python Koans es una adaptación de "Ruby Koans" de Edgecase que se puede encontrar en http://rubykoans.com/.
Python Koans es un tutorial interactivo para aprender el lenguaje de programación Python superando pruebas.
La mayoría de las pruebas se solucionan completando las partes faltantes de las funciones de afirmación. P.ej:
self . assertEqual ( __ , 1 + 2 )
que se puede solucionar reemplazando la parte __ con el código apropiado:
self . assertEqual ( 3 , 1 + 2 )
De vez en cuando encontrará algunas pruebas fallidas que ya están completadas. En estos casos, necesitarás terminar de implementar algún código para progresar. Por ejemplo, hay un ejercicio para escribir un código que te dirá si un triángulo es equilátero, isósceles o escaleno.
Además de ser una excelente manera de aprender algo de Python, también es una buena manera de probar el desarrollo basado en pruebas (TDD).
Python Koans está disponible en GitHub:
Puedes clonar con Git o descargar la fuente como zip/gz/bz2.
Además de descargar o comprobar la última versión de Python Koans, es necesario instalar el intérprete de Python.
En el momento de escribir este artículo, admitimos Python 3. La política es intentar mantenernos actualizados con la última versión de producción.
Debería poder trabajar con versiones más nuevas de Python, pero las más antiguas probablemente le causarán problemas.
Puedes descargar Python desde aquí:
Después de instalar Python, asegúrese de que la carpeta que contiene el ejecutable de Python esté en la ruta del sistema. En otras palabras, debes poder ejecutar Python desde una consola de comandos. Será python3
o para Windows será python.exe
.
Si tiene problemas, esto puede ayudar:
Es posible que los usuarios de Windows también deseen actualizar la línea en el archivo por lotes run.bat
para establecer la ruta de Python:
ESTABLECER PYTHON_PATH=C:Python39
Jake Hebbert ha creado un par de screencasts disponibles aquí:
https://www.youtube.com/watch?v=e2WXgXEjbHY&list=PL5Up_u-XkWgNcunP_UrTJG_3EXgbK2BQJ&index=1
O si prefieres leer:
Desde una terminal *nix o el símbolo del sistema de Windows, ejecute:
.. bloque de código:: sh
Python contemplate_koans.py
o:
python3 contemplate_koans.py
En mi caso, estoy usando Python 3 con Windows, así que activo mi shell de comandos (cmd.exe) y ejecuto esto:
Aparentemente una prueba falló:
AssertionError: Falso no es Verdadero
También me dice exactamente dónde está el problema, es una afirmación en la línea 12 de .\koans\about_asserts.py
. Esto es fácil, simplemente cambie False
a True
para que la prueba pase.
Tarde o temprano probablemente encontrará pruebas en las que no esté seguro de cuál debería ser el valor esperado. Por ejemplo:
class Dog :
pass
def test_objects_are_objects ( self ):
fido = self . Dog ()
self . assertEqual ( __ , isinstance ( fido , object ))
Aquí es donde la línea de comandos de Python puede resultar útil. En este caso puedo activar la línea de comando, recrear el escenario y ejecutar consultas:
Sniffer le permite ejecutar las pruebas de forma continua. Si modifica algún archivo en el directorio koans, se volverán a ejecutar las pruebas.
Para configurar esto, necesita instalar sniffer:
python3 -m pip install sniffer
También debe ejecutar una de estas bibliotecas según su sistema. Esto activará automáticamente el sniffer cuando cambie un archivo; de lo contrario, el sniffer tendrá que sondear para ver si los archivos han cambiado.
En Linux:
python3 -m pip install pyinotify
En Windows:
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
En MacOS:
python3 -m pip install MacFSEvents
Una vez configurado, simplemente ejecuta:
sniffer
Simplemente modifica uno de los archivos koans y verás que las pruebas se activan automáticamente. Sniffer está controlado por scent.py
.
Citando las instrucciones de Ruby Koans:
"En el desarrollo basado en pruebas, el mantra siempre ha sido rojo, verde, refactorizar. Escriba una prueba fallida y ejecútela (rojo), haga que la prueba pase (verde), luego refactorícela (es decir, mire el código y vea si puedes mejorarlo). En este caso, necesitarás ejecutar el koan y verlo fallar (rojo), hacer que la prueba pase (verde), luego tómate un momento y reflexiona sobre la prueba para ver qué te está enseñando. y mejorar el código para comunicar mejor su intención (refactorizar)".
Existen otros grandes proyectos Koan para varios lenguajes y marcos. La mayoría de ellos se pueden encontrar en GitHub. También hay una pequeña actividad sobre koans en Bitbucket.
¡Las traducciones siempre son bienvenidas! Siéntase libre de agregar uno a este README si trabaja en uno:
https://github.com/mswell/python_koans_br
¡Gracias a Jim Weirich y Joe O'Brien por los Ruby Koans originales en los que se basa Python Koans! Además, Ruby Koans a su vez toma prestado de Metakoans, ¡así que gracias también a Ara Howard por eso!
¡También gracias a todos los que han contribuido a Python Koans! Obtuve una gran ventaja al hacerme cargo de una base de código iniciada por los Mikes combinados de FPIP. Así que aquí hay un pequeño complemento para su genial podcast de Python:
Un gran agradecimiento también a Mike Pirnat @pirnat y Kevin Chase @kjc, que colaboraron como co-mantenedores en varios momentos.