ICON公式ブログ

ICON公式ブログ

静岡大学コンテンツ制作サークルICONの公式ブログです

【pythonではじめるゲームプログラミング 第3回】反復

f:id:iconcreator:20210517072918p:plain


今回の記事はICONのpython勉強会の資料として書かれました。

担当は ふれうと です



はじめに


今回はプログラムにおける反復処理について学びます。

順次分岐反復の3つはプログラムの基本処理です。

この3つができれば、自分で好きなプログラムを書くことができます!

前回の順次、分岐と合わせて学んでいきましょう。


それでは早速プログラミングを始めましょう。


前回の記事


iconcreator.hatenablog.com


Step 3-1 反復処理


反復処理、または繰り返し処理とは

「特定の処理を繰り返し行う」

ということです。


pythonの反復処理では、while文とfor文が使われます。

基本的な使い分けとしては、

while文は繰り返す回数が決まっていない時、

for文は繰り返す回数が決まっている時、

に使うことが多いです。

(今回の記事では説明のため、while文でも繰り返す回数が決まっていることがあります。)


while文


pythonにおけるwhile文の書き方は以下のようになります。

while (条件文):
    (条件文を満たしているときに実行される処理)

ここでwhile文は(条件文)を満たしている限り、(条件文を満たしているときに実行される処理)が繰り返し行われます。


具体例として、以下のプログラムをデスクトップの「ICONPythonLesson」フォルダに作成し、

「iteration.py」という名前で保存してください。

a = 1

while a < 5:
    print("*" * a)
    a += 1

作成出来たら、コマンドプロンプトで実行してみましょう。

cd Desktop/ICONPythonLesson
python iteration.py


以下のような結果が表示されると思います。

*
**
***
****


まず、print("*" * a)の説明をすると、

(文字列) * (整数)で(文字列)を(整数)回繋げた文字列になります。


つぎに、while文の説明をすると、

始めはa = 1であり、a < 5の条件を満たし、処理が実行される。

ここの処理で*が出力され、a2になる。

そして、while文なので、もう一度実行可能か条件の判断が行われる。


次はa = 2であり、a < 5の条件を満たし、処理が実行される。

ここの処理で*が出力され、a3になる。

そして、while文なので、もう一度実行可能か条件の判断が行われる。


次はa = 3であり、a < 5の条件を満たし、処理が実行される。

ここの処理で*が出力され、a4になる。

そして、while文なので、もう一度実行可能か条件の判断が行われる。


次はa = 4であり、a < 5の条件を満たし、処理が実行される。

ここの処理で*が出力され、a5になる。

そして、while文なので、もう一度実行可能か条件の判断が行われる。


次はa = 5であり、a < 5の条件を満たせず、処理が行われない。


以上がwhile文による反復処理の説明である。


注意


真似しないでください

もし、上記のプログラムを

a = 1

while a < 5:
    print("*" * a)
    #a += 1

このようにして実行してしまうと、

aの値が変わらず、常にwhile文の条件を満たすことになり、プログラムが終了しない。

永遠に*が出力され続ける。

いわゆる「無限ループ」である。


もし万が一、上のプログラムを実行してしまった場合、

慌てず騒がず、

Ctrl + Cキーを押して、強制終了してください。


bool値


bool値(真偽値)とは、それが真(True)であるか偽(False)であるかの情報です。

二進数で動いているコンピュータと相性の良い値だと考えられます。

また、その値を持つ変数をbool変数と言います。

(他言語では bool を boolean と言ったりもします。)


pythonにおけるbool値は、TrueFalseです。

(他言語では、全部小文字のtruefalseなど、他の書き方をすることもあります)


ここで、if文やwhile文の条件文は、

その条件に合致したときTrueであり、

その条件に合致しないときFalseでとなっています。


つまり、以下のようなプログラムの書き方が可能です。

(実行しないでください。)

a = 1

while True:
    print("*" * a)
    a += 1

当然、このままだと無限ループです。

(もし実行してしまった場合、Ctrl + Cキー)


次に学ぶbreak文を用いることで、Trueを用いたwhile文を記述することができます。


break文


break文とは、「反復処理を強制停止する」命令です。

pythonでは、以下のように記述します。

break

if文と共に用いて、while文などのループを停止させることが多いですね。


以下のように「iteration.py」を改変してみましょう。

a = 1

while True:
    print("*" * a)
    a += 1
    if a > 4:
        break

改変したら、実行してみましょう。

最初のプログラムと同様の結果が表示されたでしょうか。

これがbreak文の基本的な使い方です。


continue文


continue文とは、

「後ろの処理をスキップして、反復処理の条件を判断させる」命令です。

pythonでは、以下のように記述します。

continue

if文と共に用いて、特定の処理をさせることが多いですね。


aの値が小さいときは*を表示しないといった感じのプログラムを作ってみます。

以下のように「iteration.py」を改変してみましょう。

a = 1

while a < 15:
    a += 1
    if a < 5:
        continue
    print("*" * a)

改変したら、実行してみましょう。

結果は以下のようになると思います。

*****
******
*******
********
*********
**********
***********
************
*************
**************
***************


実行処理文の位置を間違えると、無限ループになることもあるので気をつけてください。

(実行しないでください)

a = 1

while a < 15:
    if a < 5:
        continue
    print("*" * a)
    a += 1

(もし実行したら、Ctrl + Cキー)


for文


pythonにおけるwhile文の書き方は以下のようになります。

for (変数) in (イテラブルオブジェクト):
    (実行される処理)

for文の説明は、

pythonにおけるリスト(他言語では配列と呼ぶこともある)を学んだあとの方が理解しやすいと思いますので、今回は存在の紹介に留めます。


Step 3-2 演習(FizzBuzz


ここまでで、順次分岐反復の三つの基本処理を学びました。

それでは、学んだ基本処理を用いて、簡単なプログラムを実装しましょう。

FizzBuzz問題と呼ばれるものです。

Hello world」と同じぐらい有名なものです。


以下にその仕様を述べます。

//////////////////////////////

ファイル名は「fizzbuzz.py」

コマンドプロンプトから数値Nを入力する。(100以下)

1から順にNまでの数値を出力する。

その際、3の倍数の時、数値の代わりに「Fizz」と出力する

また、5の倍数の時、数値の代わりに「Buzz」と出力する

また、3の倍数かつ5の倍数の時、数値の代わりに「FizzBuzz」と出力する

//////////////////////////////

それでは、実装してみましょう。






↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

実装しました??

以下は回答例です。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓




プログラムは

print("数値を入力してください")
n = int(input())
a = 1

while a <= n:

    if a % 15 == 0:
        print("FizzBuzz")
    elif a % 3 == 0:
        print("Fizz")
    elif a % 5 == 0:
        print("Buzz")
    else:
        print(a)

    a += 1

実行は

cd Desktop/ICONPythonLesson
python fizzbuzz.py

です。


終わりに


今回で、順次分岐反復の三つの基本処理を学び終わりました。

ここからは、自分の創造力次第であらゆるプログラムを作成できます。

ICONの他の勉強会などにも参加しつつ、自分の作りたいものを見つけてください!



第四回はコチラ!


iconcreator.hatenablog.com