見出し画像

MakeCodeでpython-1Python editorとの違い

こんにちはrock204チャンネルです。
今回は「MakeCodeでPython 1 Python editorとの違い」についてお送りします。


https://amzn.to/49TJr02

マイクロビットでのPythonの開発環境は
マイクロビットのホームページを開くと
「MakeCode editor」と「Python editor」を選択することができます。


どちらのエディターでもPythonプログラムを開発することができます。
メイクコードエディターでは、「ブロックプログラム」のほか「python」、「javascript」の使用も可能です。
Python editorにおいてもマイクロビットの機能を生かせるプログラムを作成することができます。
この動画では、MakeCodeのPythonとPython editorでのプログラムの違いについて簡単に説明をしたいと思います。

こちらはMakeCodeで作成したブロックプログラムをPythonに変換したものです。
MakeCodeでは、一旦ブロックプログラムで作成し上のバーでPythonを選択すると自動的にpythonプログラムに変換されます。
こちらのプログラムは「最初だけ」ブロックに文字列表示ブロックを挿入しています。この部分をpythonに変換するとbasic.show_string()のように変換されます。
「ずっと」ブロックでは、変換されるとdef on_forever()の関数として登録されます。
アイコン表示はbasic.show_icon()で、一時停止はbasic.pause()に変換されます。

同じプログラムをpython editorで記述したのがこのスライドになります。
こちらでは、マイクロビットを使用するためのモジュール microbitを最初にインポートする必要があります。
マイクロビットのディスプレイに文字列を表示する場合、こちらではdisplay.scroll()を使用します。
また、「ずっと」ブロックに対応する部分は「while True」ループを使用します。
そしてハートマークを表示するには、「display.show()」を使用します。
またプログラムの一時停止は、「sleep()」命令を使用するなどMakeCodeは異なった命令を使用します。

こちらはボタンA、BおよびA+Bボタンを押した時のプログラムをMakeCodeで作成したものになります。
こちらでのPython表記が右のコードとなります。ボタンはそれぞれ関数として定義され
aボタンを押した時は、「def on_button_pressed_a()」関数となります。
そして3行の「input.on_button_pressed()」までが実行されます。
同様にa+bボタン、およびbボタンについても同じ書式となります。
最初だけブロックの内容は関数外で記述された内容となることに注意してください。

Python editorで先ほどのプログラムを書くとこのようになりますが
A+Bボタンについては使用することができません。
代わりにAまたはbボタンが押されたときの命令を使用することはできます。
こちらでは「while True」ループの中にif文としてボタンが押されたかどうかをチェックして行きます。
aボタンが押されたかどうかは「if button_a.was_pressed()」で条件が成り立った時にボタンが押されたと判断します。

こちらは関数を使用したブロックプログラムをpythonプログラムに変換した例を示しています。
左の関数を使用したプログラムをPythonに変換すると右上のような形式で出力されます。
変数xについては、特に関数内でglobalのような形で定義する必要はないのですが、このように変換されてしまいます。
このプログラムを無駄な部分を取り除いたコードが、右下のプログラムとなります。結果は同じ答えが出力されます。

こちらは先ほどのプログラムをpython editorで記述したものとなります。
ここで注意していただきたいのは、引数の形の定義です。
先ほどはnumberと表記されていました、がこちらでわint整数として定義しています。
このように同じPythonであってもいくつかの点で異なる表記が必要となっていることに注意が必要となってきます。
特徴としてはPython editorがオリジナルのPythonに近いのに比べ
MakeCodeのPythonでは、マイクロビットの持つ機能を充分に生かせるような独特な表現がなされているのが特徴だと思われました。



この記事が気に入ったらサポートをしてみませんか?