初心者向けプログラミング講座
第2回: Pythonの制御文と関数
講座の概要については以下からご覧ください。
目的
この回では、プログラムの流れをコントロールする構造である「制御文」(条件分岐・ループ)と、「関数」(コードの再利用性を向上させるための仕組み)について学びます。計測器制御には、条件によって異なる処理を行ったり、同じ操作を繰り返したりする場面が多いため、この回の内容が重要な基礎になります。
学習内容
条件分岐 (if 文)
条件に応じて異なる処理を実行する。
繰り返し処理 (for 文, while 文)
同じ処理を繰り返す。
関数の基礎
再利用可能な処理をまとめる方法。
演習での実践
学習準備
前回同様に Jupyter Notebookを開いてください。やり方は第1回の説明をご覧下さい。
1. 条件分岐 (if文)
プログラムの処理を条件に応じて切り分けるために、「条件分岐 (if文)」を使用します。具体的には、「もし〇〇なら…を実行する」という形でコードを設計します。
基本構文
if 条件式:
処理1 # 条件式が「真」の場合に実行される
elif 別の条件式:
処理2 # 条件式が最初に「偽」で、かつこの条件式が「真」の場合
else:
処理3 # 上記がすべて「偽」の場合に実行される
例 1: 数値の比較
以下のコードは、入力された数値が正の数、負の数、またはゼロかを判定します。
# 入力を数値として取得
num = int(input("数字を入力してください: "))
if num > 0:
print("入力された数字は正の数です。")
elif num < 0:
print("入力された数字は負の数です。")
else:
print("入力された数字はゼロです。")
実行例
数字を入力してください: 10
入力された数字は正の数です。
2. 繰り返し処理
同じ処理を何度も行う場合、「繰り返し処理」が必要になります。
2-1. for文
for 文は、リストや範囲内の要素を1つずつ取り出して処理を行います。
基本構文
for 変数 in シーケンス(リストや範囲など):
処理
例1:リストの要素を順に表示
# リストを定義
numbers = [1, 2, 3, 4, 5]
# リスト内の各要素を処理
for num in numbers:
print(num)
実行結果
1
2
3
4
5
例 2: 数字の範囲を使ったループ (range)
# 1から10までの数値を表示
for i in range(1, 11): # 1から10(終点は含まない)
print(i)
実行結果
1
2
3
4
5
6
7
8
9
10
2-2. while文
while 文は、指定した条件が「真」である間、繰り返し処理を実行します。for 文は要素数が決まっている時に便利ですが、while 文は条件次第で終了タイミングが変わる場合に役立ちます。
基本構文
while 条件式:
処理
例 1: 10未満の数を表示する
以下のコードでは、変数 i を使って繰り返し処理を実行します。
i = 0
while i < 10: # iが10未満なら繰り返す
print(i)
i += 1 # iを1増加
実行結果
0
1
2
3
4
5
6
7
8
9
3. 関数
関数は、特定の処理をひとかたまりとしてまとめたものです。プログラムが整理しやすくなり、コードの再利用性が高くなります。
基本構文
def 関数名(引数1, 引数2, ...):
処理
return 戻り値
例 1: 足し算を行う関数
以下は、2つの数値を足し算して返す関数です。
def addNumber(a, b):
result = a + b
return result
# 関数を呼び出して表示
sum_result = addNumber(10, 20)
print("足し算の結果:", sum_result)
実行結果
足し算の結果: 30
例 2: 繰り返しを含む関数
関数内で繰り返しを使うと、複雑な処理も簡潔に書けます。
# リスト内の全要素を2倍にする関数
def double_list(numbers):
doubled = []
for num in numbers:
doubled.append(num * 2) # 要素を2倍にしてリストに追加
return doubled
# 結果を表示
originalList = [1, 2, 3]
newList = double_list(originalList)
print("元のリスト:", originalList)
print("2倍になったリスト:",newList)
実行結果
元のリスト: [1, 2, 3]
2倍になったリスト: [2, 4, 6]
4. 実践プログラム
例題 1: 条件分岐に基づくリスト操作
リストの要素が偶数か奇数かを判定するプログラムを作成します。
元# 要素を判別する関数(2で割った「余り」を調べる)
def checkNum(numbers):
for num in numbers:
if num % 2 == 0:
print(num, "は偶数です。")
else:
print(num, "は奇数です。")
# リスト内の要素を判定
numList = [1, 2, 3, 4, 5]
checkNum(numList)
実行結果
1 は奇数です。
2 は偶数です。
3 は奇数です。
4 は偶数です。
5 は奇数です。
5. 演習問題
問題 1: 数値の判定
与えられたリストの中から、正の数、負の数、ゼロの個数を判定するプログラムを作ってください。
解答例を表示
# リストを受け取り、正の数、負の数、ゼロの数を数える関数
def countNum(numbers):
positiveCount = 0
negativeCount = 0
zeroCount = 0
for num in numbers:
if num > 0:
positiveCount += 1
elif num < 0:
negativeCount += 1
else:
zeroCount += 1
print("正の数の数:", positiveCount)
print("負の数の数:", negativeCount)
print("ゼロの数:", zeroCount)
# サンプルリスト
numbers = [1, -2, 0, 5, -7, 9, 0]
countNum (numbers)
次回予告
次回は、「Pythonでライブラリを使った開発」を学びます。本格的に計測器操作へ進むために必要な外部ライブラリの使い方を習得していきましょう!