Python.use(better)

前の記事記事一覧次の記事
Python.use(better)


実録:はじめてのプログラミング《04》


スケール課題(0)要求仕様

スケール課題を作成しながら、制御構造について学びます。

>>> s = "STRING"
>>> len(s); s.index("IN")
6
3

組み込み関数 len を利用すると、変数 s によって参照される文字列 "STRING" の長さとして、値 6 が得られます。また、メソッド index を利用すると、文字列 s に含まれる部分文字列 "IN" の位置(先頭からのオフセット値)として、値 3 が得られます。このとき、文字列の「先頭の位置が 0 になる」ので、得られる値は 4 ではなく 3 になることに注意してください。

>>> print(str.__doc__)

str(string[, encoding[, errors]]) -> str

Create a new string object from the given encoded string.
encoding defaults to the current default string encoding.
errors can be 'strict', 'replace' or 'ignore' and defaults to 'strict'.

属性 __doc__ を参照すると、ドキュメント文字列が得られるので、その詳細な情報を知ることができます。そこで、この中の部分文字列を利用します。すると、

>>> s = "Create a new string object from the given encoded string."
>>> s.index("in")
16

文字列 s の中で、最初に部分文字列 "in" が現れるのは 16 番目だと分かります。ここに、課題で作成した関数 scale を利用すると、

>>> print(scale(len(s), 0)); print(s)
0....+....1....+....2....+....3....+....4....+....5....+..
Create a new string object from the given encoded string.

16 番目に現れる部分文字列 "in" を(その出力結果から)視覚的に確認できるようになります。ここで、関数 scale の第2引数に 0 を指定したのは、先頭のオフセット値を 0 から始めるためです。これを省略すると、

>>> for e in range(10): print(e, scale(e))
0 
1 .
2 ..
3 ...
4 ....
5 ....+
6 ....+.
7 ....+..
8 ....+...
9 ....+....

第2引数に 1 を指定したものと見なされて、オフセット値が 0 のときには、何も出力されません。

Tips

関数 scale を使うと、引数に指定した長さの目盛(を表わす文字列)が得られます。5桁ごとに文字 "+" が、10桁ごとに数字(十の位)が現われます。すると、文字列の長さを視覚的に確認できるので便利です。

TOP

Last updated♪2009/09/18