Python.use(better) #Scale: step06x -- if not e%10:
‖記事一覧‖
Python.use(better)
Scale: step06x -- if not e%10:
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python scale.py >>> do() 0: step00 -- return "."*n 1: step01 -- for e in range(n): 2: step02 -- s.append(".") 3: step03x -- if e%5 == 0: 4: step04x -- else: 5: step05 -- if not e%5: 6: step06x -- if not e%10: 7: step07 -- elif not e%5: 8: step08 -- s.append(c) 9: step09 -- def scale(n, offset=1): >>>
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do に実引数を指定します。
>>> do(6) >>> # -------------------------------------------------- step06x >>> for e in range(12): print("%2d"%e,"|",scale(e),sep="") 0| 1|. 2|.. 3|... 4|.... 5|....+ 6|....+. 7|....+.. 8|....+... 9|....+.... 10|....+....1+ 11|....+....1+. >>>
- 10 の倍数のときには、"+" も表示されるので、これは問題です。
事例:コードの解説
def scale(n):
s = []
for e in range(1,n+1):
if not e%10: #1:
s.append(str(e//10))
if not e%5:
s.append("+")
else:
s.append(".")
return "".join(s)
■ #1: 演算子 not
if not e%10: #1:
演算子 not を利用すると、
- if に続く条件式 e%10 の値が 0 である(10 の倍数)ときには、
- if ブロックにある、コードの断片を実行します。
■ 何が問題か
条件式 e%10 の値が 0 である(10 の倍数)ときには、同時に、条件式 e%5 の値が 0 でもある(5 の倍数)ので、2つの出力が重複します。そこで、次のステップでは、この問題を解消します。
》こちらに移動中です《
↑TOP