【マイクロビット入門】(5)それって本当?それとも嘘?(TrueとFalseについて)

マイクロビット

 前回はマイクロビットに計算をさせてみた。前回行った計算は、いわゆる四則演算だが、コンピューターが行う計算には、四則演算とは異なる計算もあるのだ。今回は、条件式について解説していく。

パイソンエディターを新しいタブで開く

サンプルプログラムのおさらい

 くどいようだが、サンプルプログラムを書き出してみるぞ。

  • 1行目 #Add your Python code here. E. g.
  • 2行目 from microbit import *
  • 3行目
  • 4行目
  • 5行目 while True:
  • 6行目  display.scroll(‘Hello, World!’)
  • 7行目  display.show(Image.HEART)
  • 8行目  sleep(2000)

 「Hello, World!」を流して、ハートを表示して、2秒待つ ということを繰り返すのだ。

 グルグル回って表示を繰り返すのでしたね。

 ここで問題だ。5行目の・・・

Trueって、なんだ?

 5行目に「while True」とあるが、この「True」って、いったい何なのだ?ということだ。

 うーん、「本当」ってことですか?

 イエス!その通り!!じゃ、その反対は?

 「嘘」・・・ですかね?

 よく分かったね、赤トマト君。

 グルグル回るループと一体何の関係が???

 ループとの関係はひとまず置いておいて、この「本当」と「嘘」についてみてみよう。

 コンピュータのプログラムでは、この「本当」と「嘘」を使って、いろいろなことを行うのだ。「嘘」というと、ちょっと悪いことをされているような気がするが、まぁ「合っている」「違っている」ぐらいの感覚だ。そして、パイソンでは、「本当」は「True」「嘘」は「False」というようにあらわすことになっている。

 うーむ、「True」って書いてあれば、合っていて、「False」って書いてあれば間違っている、ということですか。

 そうだ。そして、コンピュータのプログラムでは、計算した結果がこの「True」または「False」になるような計算を行うことができるのだ。これを条件式というのだ。

 なな、なんですか?いきなりハードルを上げないでくださいよ。

条件式??って、なんなのよ???

 例えば不等号について考えてみよう。

 「>」とか「<」とかですね。

 「5 > 8」は正しいだろうか?

 さすがにこれは、トマトの僕にもわかりますよ。間違いですね!

 その通り!プログラミングでは、これを次のように書くことができる。

a = 2 > 4

 この場合、「a」には「False」が格納される。

 これ、なんか意味あるんスか?

 このままではあまり意味がなさそうだが、例えば「2」が変数だったらどうなる?

a = b > 4

 うーん、「a」も変数で、「b」も変数で・・・

 2つも変数があるからとっても変!じゃなくて・・・

 (とりあえずボケようとして、外したってところだな。)

 変数は変わる数なので、「b」が変わって4より大きくなれば「本当」になる!

 イエス!正解で~す!!

マイクロビットを動かして確かめよう

 じゃぁ、具体的にプログラムで見てみよう。

  • 1行目 #Add your Python code here. E. g.
  • 2行目 from microbit import *
  • 3行目
  • 4行目 a=’false’
  • 5行目 b=0
  • 6行目
  • 7行目 while True:
  • 8行目  a=b>4
  • 9行目  display.scroll(‘b=’)
  • 10行目  display.scroll(b)
  • 11行目  display.show(‘,a=’)
  • 12行目  display.show(a)
  • 13行目  sleep(1000)
  • 14行目   b=b+1

 これをマイクロビットに「Flash」すると、「b=0,a=False」と表示されて、だんだんbの値が増えていきますね。

 bが5になると、あ、「a=True」と表示された!

 プログラムの要点を解説するぞ。まず4行目で変数「a」を用意して「False」を入れておく。「false」でも「False」でも構わないが、「’」で囲っておくことを忘れないようにしてくれたまえ。

 5行目は変数「b」に0を入れているのですね?

 そういうことだ。前回は「a」に0を入れておいたが、今回は「b」に0を入れる。

 そして、8行目が問題の計算式の部分だ。さっき出てきた「a=b>4」をそのまま打ち込んである。

 ほんとにそのまんまですね。

 9~12行目は変数「a」と変数「b」の中身を表示している部分だ。わかりやすいように毎回「b=」とか「a=」とかもつけて表示しているのだ。

 最後の13行目で変数「b」の値を1づつ増やしているのだ。ループの中身は繰り返し実行される。この様子を表すと・・・

1回目b=0「0>4」なので間違い「a」に’False’が格納される。
2回目b=1「1>4」なので間違い「a」に’False’が格納される。
3回目b=2「2>4」なので間違い「a」に’False’が格納される。
4回目b=3「3>4」なので間違い「a」に’False’が格納される。
5回目b=4「4>4」なので間違い「a」に’False’が格納される。
6回目b=5「5>4」なので正しい「a」に’True’が格納される。
7回目b=6「6>4」なので正しい「a」に’True’が格納される。

 インデントの部分がループの中身で、繰り返される、という訳ですね。

 そして、「a=b>4」のように結果として「True(正しい)」または「False(間違い)」のような値が得られるものが条件式なのだ。

「>」は比較演算子の一種ですよ。

 ちなみに「>」は、2つの値の大小を比べる役割を果たすので、「比較演算子」といわれる。

 他にどんなものがあるのですか?

 「<」は普通に使えるぞ。また、「≧」は「>=」、「≦」は「<=」とあらわす。代入ではなく等号の意味の「=」は「==」とあらわすぞ。

 等号もちゃんとあるんですね。等号さん、仲間外れじゃなくて、良かったですね。

今回のまとめ

 今回の内容をまとめておくぞ。

  1. 条件式は、結果が「True(正しい)」または「False(間違い)」となる式
  2. 2つの値を比べるのには、比較演算子を使う。

今回出てきた演算子

==等号2つの値が等しいかどうかを調べる。
>不等号(>)左の値が右の値より大きいかどうかを調べる。
<不等号(<)左の値が右の値より小さいかどうかを調べる。
>=不等号(≧)左の値が右の値以上かどうかを調べる。
<=不等号(≦)左の値が右の値以下かどうかを調べる。

つづく

参考

プログラムを保存すると、ダウンロードフォルダーに「microbit_program(番号)」というファイルがどんどん作られていきます。これを整理する方法については、以下をご覧ください。

【マイクロビット】保存したプログラムを整理しよう。

コメント

タイトルとURLをコピーしました