Séries

Séries

Facile

Instructions

Étant donné une string de chiffres, renvoie toutes les sous-chaînes contiguës de longueur n de cette string, dans l'ordre où elles apparaissent.

Par exemple, la string « 49142 » contient les séries de 3 chiffres suivantes :

  • « 491 »
  • « 914 »
  • « 142 »

Et les séries de 4 chiffres suivantes :

  • « 4914 »
  • « 9142 »

Et si tu demandes une série de 6 chiffres à partir d'une string de 5 chiffres, tant pis pour toi.

Note que ces séries doivent seulement occuper des positions adjacentes dans l'entrée ; les chiffres n'ont pas besoin d'être consécutifs au niveau numérique.

Messages d'exception

Il est parfois nécessaire de lever une exception. Dans ce cas, il faut toujours inclure un message d'erreur explicite qui indique l'origine de l'erreur. Cela rend le code plus lisible et facilite grandement le débogage. Si tu sais que la source de l'erreur sera d'un type donné, tu peux lever l'un des types d'erreur intégrés, mais tu dois tout de même y joindre un message explicite.

Cet exercice demande en particulier d'utiliser l'instruction raise pour « lever » une ValueError si les paramètres series et/ou length fournis en entrée de la fonction slice() sont vides ou hors limites. Les tests ne réussiront que si tu lèves l'exception avec raise et que tu y joins un message.

Pour lever une ValueError avec un message, écris ce message comme argument du type 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")
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Python Exercism

Prêt à commencer Séries ?

Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.