Dada uma string de algarismos, produz todas as substrings contíguas de comprimento n dessa string, pela ordem em que aparecem.
Por exemplo, a string "49142" tem as seguintes séries de 3 algarismos:
E as seguintes séries de 4 algarismos:
E se pedires uma série de 6 algarismos a uma string de 5 algarismos, mereces tudo o que te acontecer.
Repara que estas séries só têm de ocupar posições adjacentes na string de entrada; os algarismos não precisam de ser numericamente consecutivos.
Por vezes é necessário lançar uma exceção. Quando o fazes, deves incluir sempre uma mensagem de erro significativa para indicar qual é a origem do erro. Isto torna o teu código mais legível e ajuda imenso na depuração. Em situações em que sabes que a origem do erro é de um determinado tipo, podes optar por lançar um dos tipos de erro incorporados, mas mesmo assim deves incluir uma mensagem significativa.
Neste exercício em particular, tens de usar a instrução raise para "lançar" um ValueError se os parâmetros series e/ou length passados à função slice() estiverem vazios ou fora do intervalo. Os testes só passam se fizeres raise da exception e incluíres uma mensagem com ela.
Para lançar um ValueError com uma mensagem, escreve a mensagem como argumento do 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")
Inscreve-te no Exercism para aprenderes e dominares Python com 17 conceitos146 exercícios, e mentoria humana real, tudo grátis.