トラック
/
Python
Python
/
演習
/
連続部分文字列
連続部分文字列

連続部分文字列

初級

説明

数字の文字列が与えられたとき、その文字列の中にある長さnの連続した部分文字列を、現れる順にすべて出力します。

たとえば、文字列"49142"には、次の3桁の並びがあります。

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

また、次の4桁の並びもあります。

  • "4914"
  • "9142"

そして、5桁の文字列から6桁の並びを求めようとしたなら、何が返ってきても仕方ありません。

なお、これらの並びは、入力の中で_隣り合った位置_にあればよいだけで、数字が_数的に連続している_必要はありません。

例外メッセージ

ときには例外を発生させる必要があります。その際は、エラーの原因が何であるかを示す意味のあるエラーメッセージを必ず含めるようにしましょう。そうすることでコードが読みやすくなり、デバッグもずっと楽になります。エラーの原因がある型になるとわかっている場合は、組み込みのエラータイプのいずれかを発生させることもできますが、その場合も意味のあるメッセージを含めるようにしましょう。

この演習では、slice()関数に入力するseriesやlengthが空、または範囲外の場合に、raise文を使ってValueErrorを「スロー」する必要があります。テストに通るのは、exceptionをraiseし、かつメッセージを含めた場合だけです。

メッセージ付きでValueErrorを発生させるには、メッセージを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")
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Python Exercism

連続部分文字列を始める準備はできましたか?

Exercismに登録すれば、17個のコンセプト146個の演習、そして本物の人間によるメンタリングとともに、Pythonを学んでマスターできます。すべて無料です。