Dado un string de dígitos, devuelve todos los substring contiguos de longitud n que aparezcan en él, en el orden en que aparecen.
Por ejemplo, el string «49142» tiene las siguientes series de 3 dígitos:
Y las siguientes series de 4 dígitos:
Y si pides una serie de 6 dígitos de un string de 5 dígitos, te mereces lo que te toque.
Ten en cuenta que estas series solo tienen que ocupar posiciones adyacentes en el string que recibes; los dígitos no necesitan ser numéricamente consecutivos.
A veces es necesario lanzar una excepción. Cuando lo hagas, siempre debes incluir un mensaje de error significativo que indique cuál es el origen del error. Esto hace que tu código sea más legible y ayuda mucho a la hora de depurar. En los casos en que sepas que el origen del error será de cierto tipo, puedes optar por lanzar uno de los tipos de error incorporados, pero aun así debes incluir un mensaje significativo.
Este ejercicio en particular requiere que uses la sentencia raise para «lanzar» un ValueError si los parámetros series y/o length que se pasan a la función slice() están vacíos o fuera de rango. Las pruebas solo pasarán si haces raise de la exception y además incluyes un mensaje con ella.
Para lanzar un ValueError con un mensaje, escribe el mensaje como argumento del tipo exception:
# if the slice length is zero.
raise ValueError("slice length cannot be zero")
# if the slice length is negative.
raise ValueError("slice length cannot be negative")
# if the series provided is empty.
raise ValueError("series cannot be empty")
# if the slice length is longer than the series.
raise ValueError("slice length cannot be greater than series length")
Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.