Séries

Séries

Fácil

Instruções

Dada uma string de dígitos, produza todas as substrings contíguas de comprimento n dessa string, na ordem em que aparecem.

Por exemplo, a string "49142" tem as seguintes séries de 3 dígitos:

  • "491"
  • "914"
  • "142"

E as seguintes séries de 4 dígitos:

  • "4914"
  • "9142"

E se você pedir uma série de 6 dígitos a partir de uma string de 5 dígitos, você merece o que receber.

Repare que essas séries só precisam ocupar posições adjacentes na entrada; os dígitos não precisam ser numericamente consecutivos.

Mensagens de exceção

Às vezes é necessário lançar uma exceção. Quando você fizer isso, inclua sempre uma mensagem de erro significativa para indicar qual é a origem do erro. Isso deixa seu código mais legível e ajuda muito na depuração. Em situações em que você sabe que a origem do erro será de um determinado tipo, você pode escolher lançar um dos tipos de erro embutidos, mas ainda assim deve incluir uma mensagem significativa.

Este exercício em particular exige que você use a instrução raise para "lançar" um ValueError se os parâmetros series e/ou length passados para a função slice() estiverem vazios ou fora do intervalo. Os testes só serão aprovados se você usar raise na exception e incluir uma mensagem junto com ela.

Para lançar um ValueError com uma mensagem, escreva a mensagem como um 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")
Editar via GitHub O link abre em uma nova janela ou aba
Python Exercism

Tudo pronto para começar Séries?

Crie sua conta no Exercism para aprender e dominar Python com 17 conceitos146 exercícios e mentoria humana de verdade, tudo de graça.