金宏和實です。2025年度の講習会でSpike3アプリでPythonプログラミングを始めてみたい人向けに記事を書いて行きたいと思います。ただし勘違いしないでほしいのは、プログラミング言語にPythonを選んだからといって、これまでに比べて明らかにロボットの動きが良くなるということはありません。なぜかと言うと、Spike3アプリではみなさんがこれまで使っているワードブロックとPythonで「できること」にあまり差がないようになっているとわたしは感じているからです。
 これは、それでもPythonでコードを書いてみようと思う人向けのテキストです。Pythonのコードに慣れてくれば、プログラミングの効率はワードブロックで作成するよりは高いということは間違いないと言えます。
 まず、今回はPython入門の第1回として、プログラムの構成方法を説明します。
四角形を描くように動くプログラムを作って、Pythonのプログラムの書き方、つまりお作法を説明します。

#まず必要なモジュールをインポートします。
import motor_pair
from hub import port
import time

#初期化処理
motor_pair.pair(motor_pair.PAIR_1, port.C, port.D)

#繰り返し呼び出す処理は関数にしましょう。
def straight_turn(t1,t2):
    motor_pair.move_tank(motor_pair.PAIR_1, 500, 500)
    time.sleep_ms(t1) 
    motor_pair.move_tank(motor_pair.PAIR_1, 0, 500)
    time.sleep_ms(t2)


#main(メイン)関数は必ず作りましょう。
def main():
    #関数の中では、tabキーで字下げします。
    for _ in range(4):
        straight_turn(1000,800)

    motor_pair.stop(motor_pair.PAIR_1)

#プログラムの最後でmain関数を呼び出します。
main()

 プログラムの大まかな説明はプログラムの中の#で始まる行に書いてあります。この#で始まる行のことをコメント行と言います。みなさんがプログラムを作るときも、ここで何をしているかわかるようにコメント行を書きましょう。
 プログラムの最初にはimport(インポート)文を書きます。importはこれから作るプログラムで使うモジュール(部品)を読み込む処理です。
 次に初期化処理を書きます。motor_pair.pair()で二つモーターをペアにしています。つまりタンクのようなロボットの左のモーター(C)と右のモーター(D)を設定する処理です。
 defで始まる行が関数定義です。繰り返し実行する処理は関数にします。関数は引数を受け取ります。straight_turn関数の引数はt1とt2の二つでt1はまっすぐ進む時間(ミリ秒)で、t2は右に曲がる時間(ミリ秒)です。関数の中のそれぞれのコードはSpike3アプリのナレッジベースを参考にしてください。関数の中のコードはTabキーで字下げ(インデント)します。これはPythonの決まり事です。
 Pythonのプログラムにはmain関数を必ず一つ作成するようにします。そしてmain関数の中には、プログラムのあらすじを書きます。ここではfor _ in range(4)句でstraight_turn関数を4回呼び出しています。1000,800が引数t1、t2に渡す値です。for _ in range(4)句は少し難しいですね。ここに指定した回数(4)分straight_turn関数を実行することができます。だから、ロボットは四角を描くように走るわけです。for文の中もTabキーでインデントします。
 motor_pair.stop(motor_pair.PAIR_1)でロボットを停止しています。

 そして、プログラムの最後でmain()としてmain関数を実行します。これでプログラムが実行されるわけです。プログラミング言語によってはmain関数が自動的に実行されるものもあるのですが、Pythonの場合は自分でmain関数を呼び出す必要があります。
 これが、Pythonプログラムの基本の形です。