MicroPythonスクリプトを作成するときに役立つPythonの基本をいくつか学びます。
Author: Karl Söderby、Last revision: 2024/02/05
この章では、MicroPythonスクリプトを作成するときに役立つPython®の文法をいくつか紹介します。
概要
この章では、このコースを通じて役立つPythonの文法をいくつか紹介します。この章の目的は、Pythonに慣れることで、このコースのMicroPythonの例を容易に理解できるようにすることです。
この章の多くの例は、断片です。Pythonのスキルをテストするために、異なる要素を組み合わせてみてください。
Pythonを学ぶ
この章ではPythonの文法のいくつかの基本を紹介しますが、すべてを紹介するわけではありません。Pythonについて深く学びたいときは、以下のリンクを調べてください。
変数
では、始めましょう。Pythonについて最初に学ぶことは、変数の作成方法です。Pythonでは、データ型を指定する必要はありません。自動的に判断されます。
stringVar = 'This is a String' # string
numVar = 250 # numeric value
arrayVar = [1,3,6,7] # array
変数には、上記のように、何でも格納できます。しかし、どのように格納されるのかに注意を払ってください。例えば文字列(文字やテキストを保持します)は、引用符が必要ですが、数値には何も必要ありません。
print()
関数は、ボードで何が起こっているのかを知るのに最適です。print()
を使えば、変数の数値やボタンの状態を表示したり、メッセージをPCに送信したりできます。
print('Hello') # print a string
print(4) # print a number
print(data) # print value of variable
print(5+2) # prints 7
print(func()) # prints the return value of a function
print('Value: ', data) # prints "Value: <value of data variable>"
見ての通り、端末に何かを表示する方法には多くあります。
print()
関数は、最もよく使われる関数の一つです。ボードをプログラムするとき、ボードで何が起こっているのかをリアルタイムで知ることができます。演算子
Pythonでの演算子は、例えば、2つの数値を足したり、変数に値を代入したり、2つの値を比較したりするのに使い、Pythonプログラミングの基本です。
数値演算(足し算、引き算、割り算など)を行うには、以下のように書きます。
print(5+5) # value is 10
print(10-5) # value is 5
変数に値を代入するときにも演算子を使います。例えば、以下の通りです。
paragraph = "This is a sentence"
x = 10
print(x) # prints 10
print(paragraph) # this prints "this is a sentence"
比較演算子は、文中で2つの値を比較するのに使います。
if 10 > 5:
print("10 is indeed greater than 5")
複数の値を比較するときあh、論理演算子を使います。
if x > 10 and x < 15:
print("x is larger than 10 but smaller than 15")
if/elif/else文
上記の例では、条件分を使い始めました。これらの文は、特定の条件が満たされたときだけ実行するコードを作ることができるので、プログラミングの基本です。
以下では、どのように変数x
を処理する野かを示します。x
の値を調べることで、3種類の結果になる可能性があります。
x = 5+5
if x > 10:
print("x is larger than 10")
elif x == 10:
print("x is exactly 10") #this will print, since x is 10
else:
print("x is smaller than 10")
それぞれの文の後で、何が起こっているのかを見ていきます。print()
の直前の空白に注意してください。これは、字下げ(インデント)と呼ばれ、Pythonのコードの構成方法です。
この字下げの中は、条件が成立すると実行されます。Pythonプログラムで使われる基本原則の一つです。
x
を5+5
と定義したので、端末には、もちろん、以下が表示されます。
"x is larger than 10"
whileループ
文に慣れてきたので、while
ループを見ていきましょう。これは、条件が成立している間コードを実行するように設計されています。
x = 5
while(x == 5):
# this code block will execute
# over and over until x is not 5
while(x != 5):
# this code block will execute
# if x is anything else (!=) than 5
上記の例は、x
の値により、異なる2つのループを設定しています。
Nano ESP32では、これはとても有用です。作成したコードを何回も繰り返し実行することが多いからです。
何かをループさせるときの方法を再掲します。
while(True):
# this code block will execute forever
# or until we stop the script
Nano ESP32で、一定のループを使うのはなぜ有用なのでしょうか? 実世界でボードを使うときは、例えば、センサーやアクチュエーターを使うとき、継続してある値を更新させたい場合があります。
温度センサーとディスプレイがあり、理想としては、例えば、毎秒温度をディスプレイ上で更新します。これを実現するには、温度を継続的に調べるループでプログラムを記述します。
while(True):
# A value is read from the sensor
sensor_value = sensor.read()
# Sensor data is printed on a display
display.print(sensor_value)
# This happens every one second
time.sleep(1)
# And after this line, we will go back to the
# start of the loop!
forループ
for
ループは、while
ループに似た働きをします。しかし、命令を実行し終わると、ループは継続しません。
この例では、数値のリストを繰り返し、一つずつ表示します。
numbers = [1,2,3,4,5]
for x in numbers:
print(x)
最後まで到達すると、実行をやめます。
指定した回数実行するfor
ループを作成することもできます。range()
関数を追加します。
for x in range(0, 5):
print(x)
関数
関数はコードブロックを保持することができ、スクリプト内で後から実行できます。例えば、2つの数値を足すなどの、計算を行うときに有用です。
関数を造里には、def
文法を使い、任意の関数名をを後に続けます。
def my_function():
print("This line was executed inside a function!")
my_function()
関数に引数を渡すこともできます。引数を処理し、値を返すことができます。
def my_function(x,y):
return x + y
value = my_function(5,5)
print(value)
上記の関数は、10
を返します。5
と5
を引数に与えたからです。関数は単純にそれぞれを足し、値を返します。
まとめ
このPython集中コースでは、Pytonプログラミング言語の基本的な機能のいくつかを紹介しました。
このコースでは、MicroPythonに着目しました。MicroPythonは、Python言語の小さな実装です。演算子や文、ループ、関数といった、言語の基本的な機能が利用できます。
次の章: デジタルI/O
オリジナルのページ
https://docs.arduino.cc/micropython/micropython-course/course/python-cc/
最終更新日
April 14, 2024