Python.use(better)
《前の記事|記事一覧|次の記事》
Python.use(better)
実録:はじめてのプログラミング《04》制御構造(0)要求仕様
《関連記事》-
スケール課題(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