# 数値の合計を計算
numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers:
total += number
print(f"合計: {total}")
動作解説
numbersリスト内の各要素をループで処理します。
各要素をtotalに加算していきます。
最終的に、リスト内の全ての数値を合計した結果が表示されます。
1.2 条件を用いた要素の抽出
条件を使用して、リスト内の特定の要素を抽出するアルゴリズムを作成します。
# 偶数のみを抽出
numbers = [1, 2, 3, 4, 5]
even_numbers = []
for number in numbers:
if number % 2 == 0:
even_numbers.append(number)
print(f"偶数: {even_numbers}")
動作解説
if number % 2 == 0: numberが偶数の場合に条件を満たします。
条件を満たした要素をeven_numbersリストに追加します。
2. 制御構文を使った複雑なアルゴリズム
2.1 フィボナッチ数列を生成するアルゴリズム
フィボナッチ数列を生成するプログラムを作成します。
# フィボナッチ数列を生成
n = 10 # 生成する項数
fib_sequence = [0, 1]
for i in range(2, n):
next_number = fib_sequence[i-1] + fib_sequence[i-2]
fib_sequence.append(next_number)
print(f"フィボナッチ数列: {fib_sequence}")
動作解説
最初の2つの項(0, 1)をfib_sequenceに格納します。
ループで次の項を計算し、リストに追加します。
指定された項数nに達するまで処理を繰り返します。
2.2 バブルソートアルゴリズム
制御構文を使用して、リストを昇順に並べ替えるバブルソートアルゴリズムを作成します。
# バブルソート
numbers = [64, 34, 25, 12, 22, 11, 90]
for i in range(len(numbers)):
for j in range(0, len(numbers)-i-1):
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
print(f"ソート後: {numbers}")
動作解説
外側のループで未ソート部分を指定します。
内側のループで隣り合う要素を比較し、必要に応じて入れ替えます。
全ての要素がソートされるまで処理を繰り返します。
3. 実践例:制御構文を使った数値処理プログラム
数値リストから最大値と最小値を抽出するプログラムを作成します。
# 最大値と最小値を抽出
numbers = [10, 20, 5, 7, 15]
max_value = numbers[0]
min_value = numbers[0]
for number in numbers:
if number > max_value:
max_value = number
if number < min_value:
min_value = number
print(f"最大値: {max_value}, 最小値: {min_value}")
動作解説
リストの最初の要素を初期値として設定します。
各要素をループで処理し、最大値・最小値を更新します。
処理が終了したら結果を出力します。
4. 練習問題
以下の課題に挑戦してみましょう。
数値リストから奇数のみを抽出して新しいリストを作成してください。
リスト内の重複する要素を削除して、ユニークな値だけを含むリストを作成してください。
5. 練習問題の解答と解説
問1の解答例
# 奇数のみを抽出
numbers = [1, 2, 3, 4, 5]
odd_numbers = [number for number in numbers if number % 2 != 0]
print(f"奇数: {odd_numbers}")