ちこり学習日記 7日目

前回の振り返り

前回は以下のことをしました。

実践力を身につける Pythonの教科書 に取り組む(Chapter 2-5 制御構文(1) 条件分岐について まで)

少し日にちが開いてしまいました...


今日の取り組み

Chapter 2-6 制御構文(2) 繰り返しについて から。
まずはwhile文です。

energy = 3
while energy > 0:
    print("+ 走る")
    print("energy=", energy)
    energy -= 1;    # エネルギーを1消費


energyが0になるまでループをするプログラムです。
while文もif文同様にelse以降を省略することが出来ます。

while文という事はプログラムの内容によっては無限ループになってしまう可能性もあります。
例えば以下のようなプログラムだと

# 坪数を調べるプログラム
while True:
    tubo = int(input("坪数は?->"))
    m2 = tubo * 3.31
    s = "{0}坪は{1}平方メートルです。".format(tubo, m2)
    print(s)


無限ループに入ってしまいました。
「あ」とか「20.2」とか整数以外の数を入れればエラーになって終了しますが、これではよろしくありません。
一応Ctrl+Cを押すことでもプログラムを強制終了させることは出来ますが...
そういう時はbreak文を入れてあげれば...

# 坪数を調べるプログラム
while True:
    user = input("坪数は?->")
    # 入力が空の場合かqの時はbreak文でループを抜ける
    if user == "" or user =="q":    break
    tubo = int(user)    # 整数に変換するのを忘れずに
    m2 = tubo * 3.31
    s = "{0}坪は{1}平方メートルです。".format(tubo, m2)
    print(s)


ちゃんとできました。

次はfor文です。
Pythonのfor文はC++と書き方が違うので戸惑っているので、少し丁寧に学習していきたいと思います。
まずは一番シンプルなものから。

for i in range(5):
    print(i)


5回繰り返し処理をするプログラムです。
それはともかくrange()関数の使い方が良く分からない。困りました。

range()関数の使い方
(1) range( 回数 ) (2) range( 開始値, 終了値 ) (3) range( 開始値, 終了値, ステップ値 ) クジラ飛行机『実践力を身につける Pythonの教科書』 74ページ(マイナビ出版・2016年)

本にちゃんとまとまっていました。ありがてえ~!
1から5までを順に足して結果を表示するプログラムで試してみます。

v = 0
for i in range(1, 6):
    v = v + i
    print(i, "を足すと", v)
print("1から5を足すと", v)


できました。
Pythonは字下げが重要なので、print("1から5を足すと", v)の字下げを消してあげないとfor文として扱われてしまい、毎回出力してしまうので注意が必要かな。

break文は軽く触ったので、最後はcontinue文です。

for i in range(5):
    print("i=", i)
    # iが3以上の時はcontinue
    if i >= 3 : continue
    print("Hello!")


iが3以上の時はcontinue文でprint文を表示しないようにします。なんか上手に説明ができない...。
あまり使わない(気がするので)理解が足りないんだなこれは。
Chapter2が終わってキリがいいので今日のPythonはここまで。