Python.use(better) スケール課題 #1

記事一覧入門編基礎編応用編中級編

Python.use(better)
スケール課題 #1《Python3.1|Jython2.5.0|IronPython2.6》

《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28

♪スタッフ研修用のセミナー教材(2003)に加筆(再構成)して、公式マニュアルの補足情報を提供します。

スケール課題:要求仕様 ★

スケール課題とは、次のようなものです。

>>> s = str(license)
>>> s; len(s)
'Type license() to see the full license text'
43
>>> s; scale(len(s))
'Type license() to see the full license text'
'0....+....1....+....2....+....3....+....4..'
>>> s.index("to")
15

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

関数 scale を利用すると、与えられた引数と同じ長さの文字列が得られます。この文字列を使うと、同じ長さの文字列のオフセット位置(先頭の位置は 0 になる)がすぐに分かります。
たとえば、組み込み関数 index を利用すると、指定した文字列 "to" のオフセット値 15 が得られます。関数 scale で得られた文字列と比較すると、文字 "+" の位置から、それが正しいことが分かります。

■ step00:演算子 * を利用する
def scale_00(s):
    return "."*len(s)

演算子 * を使って、引数 s に与えられた文字列と同じ長さ(個数)だけ、文字列 "." を連結します。

>>> s; scale_00(s)
'Type license() to see the full license text'
'...........................................'

すると、文字列 s と同じ長さの文字列が得られます。

■ step01:演算子 * を利用する
def scale_01(n):
    return "."*n

演算子 * を使って、引数 n と同じ個数だけ、文字列 "." を連結します。

>>> s; scale_01(len(s))
'Type license() to see the full license text'
'...........................................'

ここでは、step00 と違って、実引数には文字列の長さ len(s) を指定します。

■ step02:for 文を利用する

def scale_02(n):
    s = ""
    for e in range(n):
        s += "."
    return s

for 文を使って、引数 n と同じ個数だけ、文字列 "." を連結 += します。

制御変数 e は、in に続く数列 range(n) の各要素を順に参照するので、for ブロックに記述したコードの断片を n 回だけ繰り返して実行します。

>>> s; scale_02(len(s))
'Type license() to see the full license text'
'...........................................'


》作業中です《






Last updated♪2009/07/24