マイクロビットのMicroPythonでプログラムが開始してから、何らかのアクション(今回はボタンAを押す)が実行された時の経過時間を表示したいとします。
MakeCodeであれば、

経過時間の計測用のずっとブロックと、ボタンA用のずっとブロックといった形でずっとブロックを2つ使ったり、

ボタンAのイベントを切り分ける事ができますが、MicroPythonでは基本的にずっとブロックに該当するwhile True:は一回しか使用できません。
ビジュアル言語のMakeCodeからテキスト言語のMicroPythonに書き換えてみよう
from microbit import *
# 経過時間(秒)を記録する為の変数
elapsed = 0
while True:
elapsed += 1
sleep(1000)
のようにしたいところですが、この書き方ですと、ボタンAのようなイベントを追加することが出来ません。
経過時間を計測しつつ、何らかのイベントを追加するためには一時停止(MicroPythonではsleep)ではない方法で時間の計測を行う必要があります。
計測を行うためにutimeライブラリのticks_msを使ってみます。
utime -- 時間関連の関数 — MicroPython 1.13 ドキュメント#utime.ticks_ms
ticks(ティックス)というのは、システムが刻む最小の時間単位を指し、Python3のutimeの1ticksは1ミリ秒(0.001秒)になるそうです。
ticks_msを使ったコードでは下記の二点を意識します。
・開始時間を必ず取得しておく。
・計測時間を確認したい時に(今の時間 - 開始時間)の値を取得する
この二点を加味したコードは下記のようになります。
from microbit import *
import utime
# 計測開始の合図
display.scroll("start.")
# スタート時の時間を記録
start_time = utime.ticks_ms()
while True:
if button_a.was_pressed():
display.clear()
# 経過の秒数を表示
# (今の時間 - 開始時間)で経過時間を知る
# 1000で割ることで「秒」に変換
elapsed = int((utime.ticks_ms() - start_time) / 1000)
display.scroll(str(elapsed) + "s")
break
今回のコードではボタンAを押した時に始めて経過時間を計算しますが、もし5秒以上経過していないとボタンAを押しても有効にならないといった事をしたければ、while True:の下の行に
elapsed = int((utime.ticks_ms() - start_time) / 1000)
をする必要があります。