機能#
導入#
関数はPythonプログラミングの基本的な構成要素であり、コードスニペットを再利用可能で効率的なコードセクションにパッケージ化し、特定のタスクを実行するように設計されています。関数はプログラム内で複数回呼び出すことができるため、コードの構成が容易になり、コードの重複を避けることができます。また、関数を使用することでコードのデバッグも容易になります。
重要: 関数を定義するだけでは実行されません。cte_thread を使用して新しいスレッドで関数を開始すると、イベントやコールバックを待つことなく、プロジェクトの開始時にすぐに実行が開始されます。
defは関数を定義します。returnを返します。関数の出力をメインプログラムに返します。
使用法:
def function_name(parameters):
# Code to execute when the function is called
return result # Optional, used to return a value
パラメータ |
説明 |
|---|---|
|
関数に付ける名前。 |
|
オプション。関数呼び出し時に入力値を受け取る変数。これにより、関数にデータを渡すことができます。 |
|
オプション。関数が呼び出し元に結果を返すようにします。関数に return ステートメントが含まれていない場合、デフォルトでは |
注: 関数は呼び出される前に必ず定義されていなければなりません。
関数の定義と呼び出し#
Functions with No Parameters#
関数が入力値を必要としない場合は、引数なしで定義できます。
def greeting():
brain.print("Hello!")
# Call the greeting function
greeting()
Functions with Parameters#
関数にパラメータを追加することもできます。これにより、関数が動作するために必要な情報を渡すことができます。
def move_square(moves):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square(4)
Functions with Default Arguments#
デフォルト引数とは、関数呼び出し時にその引数の値が指定されていない場合に、デフォルト値が使用されるパラメータのことです。
def move_square(moves=4):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square()
Return Values from Functions#
関数は、 return キーワードを使用して呼び出し元にデータを返すことができます。これにより、出力を取得してプログラム内で使用できます。
def times_two(number):
return number * 2
# Display the return value
print(times_two(2))
cte_thread#
cte_thread は、関数を新しいスレッドで開始し、プロジェクトの開始時にすぐに実行を開始します。
複数の cte_thread が使用される場合、関数は並行して実行されます。
Usage:
cte_thread(function)
パラメータ |
説明 |
|---|---|
|
以前に定義された関数の名前。 |
def move_square():
# Move in a square path
while True:
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
def lights():
# Set the Signal Tower to start blinking the blue LED
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
# Start threads — Do not delete
cte_thread(move_square)
cte_thread(lights)