Python集中コース

MicroPythonスクリプトを作成するときに役立つPythonの基本をいくつか学びます。


Author: Karl Söderby、Last revision: 2024/02/05


この章では、MicroPythonスクリプトを作成するときに役立つPython®の文法をいくつか紹介します。

i
この章では、Pytonプログラミング言語の一部を紹介します。この後のコースをよりよく理解するのに役立ちます。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()関数は、ボードで何が起こっているのかを知るのに最適です。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>"

見ての通り、端末に何かを表示する方法には多くあります。

i
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プログラムで使われる基本原則の一つです。

x5+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を返します。55を引数に与えたからです。関数は単純にそれぞれを足し、値を返します。

まとめ

このPython集中コースでは、Pytonプログラミング言語の基本的な機能のいくつかを紹介しました。

このコースでは、MicroPythonに着目しました。MicroPythonは、Python言語の小さな実装です。演算子や文、ループ、関数といった、言語の基本的な機能が利用できます。

次の章: デジタルI/O

オリジナルのページ

https://docs.arduino.cc/micropython/micropython-course/course/python-cc/

最終更新日

April 14, 2024

inserted by FC2 system