前回の記事では、ブロックエディターのLEDブロック/ループブロックとmicropythonを対比しながら説明しました。今回は論理ブロック、変数ブロックと計算ブロックの紹介です。
当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。
以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。クラス、関数、モジュールなどは最初は難しいかなという事で説明を省き、サンプルプログラムを通して理解できればと考えています。
論理ブロックについて
ブロック | micropython |
1.もし…なら
|
if 条件式: 命令 条件式が『真』の場合は命令を実行します。命令は複数可。条件式は4,5を見てください。 以下は、micro:bitを左に傾けると左矢印、右に傾けると右矢印をLEDに表示するプログラム |
2.もし…なら…でなければ…
|
if 条件式: 命令1 else: 命令2 条件式が『真』の場合は命令1を実行し、『偽』の場合はelseで記述した命令2が実行されます。命令1、2は複数可。条件式は4,5を見てください。 以下は、iがaより小さい間はLEDにiを表示して、iがaより大きくなったらLEDにEを表示するプログラム |
3.もし…なら…
|
if 条件式1: 命令1 elif 条件式2: 命令2 else: 命令3 条件式1が『真』の場合は命令1を実行し、『偽』の場合は条件式2が『真』の場合は命令2を実行し、『偽』の場合はelseで記述した命令3が実行されます。命令1、2、3は複数可。条件式は4,5を見てください。 以下は、Micro:bitを傾けるとLEDに傾けた方向の矢印をLEDに表示し、傾ていない時は?をLEDに表示するプログラム |
4.条件式
|
x == y xとyが等しいと真(True) x != y xとyが等しくないと真 x > y xがyより大きいと真 x >= y xがy以上で真 x < y yがxより大きいと真 x <= y yがx以上で真サンプルプログラムは1,2,3を見てください。 |
5.かつ、または、ではない 条件式
|
条件式 and 条件式 左辺と右辺の条件が共に真の時に真 条件式 or 条件式 左辺か右辺の条件のどちらかが真の時に真 not 条件式 条件式ではない時に真 以下は、3のサンプルプログラムにpin0を触っている時だけLEDに矢印を表示するように『かつ』の条件式を追加したプログラム |
変数ブロック/計算ブロックについて
ブロック | micropython |
1.変数
|
変数とは、値を保存しておく箱のようなものです。その箱に名前をつけて、プログラム内でその名前を使うと、箱の中の値を使う事ができます。箱の中に保存する値は『数字』、『文字』、『リスト』などです。なぜ、そのような事をするのでしょうか?例えば、LEDに0,1,2,3と表示する場合を考えてみましょう。 以下は変数を使わない場合です。 display.show(‘0’) display.show(‘1’) display.show(‘2’) display.show(‘3’) 以下は変数を使った場合(nという箱に0,1,2,3が代入されてdisplay.show命令が繰り返されます) for n in range(4) display.show(n) 上の例では0から3でしたが、0から100だとしたら、変数を使わないと101回同じ命令を記述しなくてはなりませんので、大変です。変数の箱の中に値を保存するには、以下のように代入します。 x = 10 xという変数に10を代入 。 y = ‘Book’ yという文字列変数にbookを代入。 z = [‘animal’, ‘fish’, ‘bird’] zというリスト変数に3つの文字列を代入。変数を1だけ足すには、以下のようにします。算数と違いますので、注意してください。詳しくは2の計算を見てください。 x = x + 1 xは先ほど10を代入してありますので、この命令後にxは11となります。xを変えたくなければ、違う箱に入れます。この場合、xは10のままでxxが11となります。 xx = x + 1変数名は、アルファベット大文字、小文字、数字、_ が使えます。但し、最初の文字は数字は許されていません。1aは変数名として使えません。a1,abc10,xx_yyは正しい変数名です。 |
2.計算
|
四則演算は、以下のように記述します。1の変数でも説明の通り、算数と違い計算結果は左側になります。以下の例ではy = 10、z = 5と変数の箱に値が入っているものとします。 足し算 x = y + z 結果は x = 15 引き算 x = y – z 結果は x = 5 掛け算 x = y * z 結果は x = 50 割り算 x = y / z 結果は x = 2 階乗 x = y ** z 結果は x = 100000乱数は、以下のように記述します。最初にrandomモジュールを使えるようにする必要があります。他にも関数はありますが、代表的なものをここで紹介します。他の関数についてはこちらを参照してください。 from microbit import * import random x = random.randint(0, 4) 結果はxには0,1,2,3,4のいずれかが代入されます。 『真または偽をランダムに選ぶ』は、上の関数をrandom.randinit(0,1)のように指定して0なら『真』、1なら『偽』と考えてプログラムします。 以下は、0から4の乱数に応じたアイコンをLEDに表示するプログラム |
論理ブロック、変数ブロックと計算ブロックについての紹介は以上です。次の記事では高度なブロックの紹介をします。
最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。
コメントを書く