前回の記事では、ブロックエディターの論理ブロック、変数ブロックと計算ブロックとmicropythonを対比しながら説明しました。今回は高度なブロックの関数、配列、文字列の紹介です。
当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。
以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。高度なブロックですので少し難しくなりますが、サンプルプログラムを参考にしてご自分でプログラムしてみてください。。
高度なブロックの関数と配列について
ブロック | micropython |
1.関数
|
変数の説明時に箱の例を出しましたが、関数も似ています。関数の箱には値が入るのではなく、処理が入ります。例えば、LEDにHelloを表示するような。プログラムの中で同じような処理を複数の場所で記述する必要があります。その時、くり返し同じプログラムを記述するより、A()という関数に1度だけ記述しておき、プログラム内ではA()と記述するほうがプログラムが分かりやすく短くなります。関数には、戻り値が無いものとあるものがあります。 以下は、戻り値が無い関数の例で、Micro:bitを左に傾けると左矢印、右に傾けると右矢印、上に傾けると上矢印、下に傾けると下矢印をLEDに表示するプログラム 以下は、戻り値がある関数の例で、2つの言葉を1つにしてLEDに表示するプログラム |
2.配列の作成
|
配列名 = [9, 8, 3, 5, 6, 8] 配列名[0]
配列とは、同じ種類の複数の値を一つの箱(複数の箱が1つになった)で扱うものです。上の例ですと、6つの箱が1つになっています。6つの箱には0から5の番号がついています。その番号を指定することで、必要な値を使うことができます。配列名[0]は9を示しています。この例では数字ですが、文字列でも同じで配列名 = [“dog”, “cat”, “pig”]のように記述します。 配列はpythonではリストと呼ばれます。 |
3.配列の長さ
|
len(配列名) 配列の長さとは、配列の要素数のことです。2の説明の箱の数です。2の例の場合は6となります。配列に項目を追加したりできるので、要素数の確認が必要です。 以下は、5個の値の配列を作り、配列の長さをLEDに表示するプログラム |
4.配列の項目を変更する
|
配列名[変更したい要素番号] = 変更したい値 要素番号は0から始まるので注意してください。3のプログラム例の配列の3番目を20に変更したい場合は 配列名[2] = 20 と記述します。 以下は、3のプログラム例の配列の3番目13を20に変更し、配列の項目をLEDに表示するプログラム |
5.配列の最後に項目を追加
|
配列名.append(挿入したい値) 以下は、3のプログラム例の配列の最後に20を追加し、配列の項目をLEDに表示するプログラム |
6.配列の項目を削除して返す
|
配列名.pop() 最後の項目を削除して、返します。 配列名.pop(削除したい要素番号) 要素番号で指定された値を削除して、返します。最初の値を削除して、返す場合は 配列名.pop(0) と記述します。 以下は、配列の最後の値20を削除して、削除した値と配列の項目をLEDに表示するプログラム 以下は、配列の3番目の値13を削除して、削除した値と配列の項目をLEDに表示するプログラム |
7.配列の途中に項目を追加
|
配列名.insert(要素番号, 挿入したい値) 要素番号は0から始まるので注意してください。3のプログラム例の配列の先頭に20を挿入したい場合は 配列名.insert(0, 20) と記述します。 以下は、3のプログラム例の配列の3番目に20を追加し、配列の項目をLEDに表示するプログラム |
8.配列の項目を探す
|
配列名.index(探したい値) 配列内の要素の項目と同じ値があれば、その要素番号を返します。 以下は、どうぶつ配列から”ぶた”を探して、その要素番号をLEDに表示するプログラム |
9.配列の項目を逆順にする
|
配列名.reverse() 配列内の要素の項目を逆の順に並べ替えます。 以下は、3の例の配列を逆に並び替えて、列の項目をLEDに表示するプログラム ブロックにはありませんが、項目を昇順に並べなおすには以下の命令を使います。 配列名.sort() 以下は、ばらばらの数字の配列を昇順に並び替えて、列の項目をLEDに表示するプログラム |
高度なブロックの文字列について
ブロック | micropython |
1.文字列
|
”文字列” 文字列は、””で括って数字とは区別します。x = ”1” のxは文字列1を保管する文字列変数です。y = 1 のyは数字1を保管する数字変数です。 |
2.文字列の長さ
|
len(文字列) 文字列の文字数を返します。 以下は、文字列”ABCDEFGHIJK”の文字数をLEDに表示するプログラム |
3.文字列をつなげる
|
”文字列1” + ”文字列2” + を使って文字列をつなげることができます。2つ以上をつなぐ事ができます。 以下は、3つの文字列を1つの文字列にして、それをLEDに表示するプログラム |
4.文字列内の0番目の文字
|
文字列[最初から何文字目か指定]
文字列には内部的に最初の文字を0として番号が振られます。その番号を利用して例えば、A = ”Start”という文字列の3番目の文字を知りたい場合にはA[2]と記述します。 |
5.文字列内の1部を取り出す
|
文字列[最初から何文字目か指定: 最初から何文字目か指定+文字数]
文字列には内部的に最初の文字を0として番号が振られます。その番号を利用して例えば、A = ”Start”という文字列の3番目の文字から2文字抜き出したいときは、A[2:4]と記述します。 |
6.文字列を比べる
|
”文字列1” == ”文字列2” 文字列1と文字列2が等しければTrueを返します。 以下は、文字列を比較して、等しければ✔を、等しくなければ×をLEDに表示するプログラム |
7.文字列を整数に変換
|
int(数字の文字列) ”12” + ”12”のような整数の文字列を足すと結果は”1212”となり計算できません。文字列を数字に変換するには、int(”12”)と記述します。 以下は、文字列”12”と”3”を数字に変換し掛け算をして結果36をLEDに表示するプログラム |
高度なブロックの関数、配列(リスト)、文字列についての紹介は以上です。次の記事では高度なブロックの画像と入出力端子パート1を紹介をします。
最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。
コメントを書く