Pythonで配列を使う(一次元配列)

学習の目的

  • 1. リストとは

  • 2. 一次元配列

  • 3. 10人分の得点を集計するプログラム(穴埋め問題)

  • 4. 数列を作成するプログラム(穴埋め問題)

1. リストとは

Pythonで配列の処理をプログラミングします。

ただし、Pythonは配列は使わず、リストを使って配列と同じ構造を表します。

配列とリストはどちらもデータを管理するデータ構造と呼ばれるものです。

配列とリストは異なるデータ構造ですが、使い方はほぼ同じです。今は配列とリストの違いを意識する必要はありません。

2. Pythonで一次元配列を使う

Pythonで一次元配列(リスト)を作るには「 [ ] 」を使います。
次の例は変数list_dataに空の配列(リスト)を作成しています。
list_data = []

また、[ ] の中で要素をコンマで区切って値を初期設定することもできます。

次の例は変数scoreに「10,20,・・・,100」の値を設定しています。

score = [10,20,30,40,50,60,70,80,90,100]

上記の命令は、配列(リスト)scoreを作成し、要素の値として10~100を代入しています。

scoreのイメージ

3. 10人分の得点を集計するプログラム

配列(リスト)に10人分の得点が格納されています。そのデータを集計して表示するプログラムを作成します。

プログラムの処理条件は次のとおりです。

  • 配列(リスト)名は score とする。
  • scoreにはあらかじめ得点が定義されている。
  • 得点を集計する変数は total とする。
  • 配列(リスト)の添字は i とする。

作成するプログラムのフローチャートは次のようになります。

下記はフローチャートの処理内容をPythonで記述したプログラムですが、プログラムの9行目 #(1) の箇所が未完成です。
フローチャートを参考に9行目 #(1) の箇所を完成させましょう。

作成したプログラムはGoogle Colabで確認しましょう。
プログラムを実行する際は、新しくノートブックを作成し名前を「ip02-06」としましょう。

# 配列(リスト)の準備
score = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

# 合計を入れる変数
total = 0

# 0~9まで繰り返し(リストの要素数が10個なので)
for i in range(10):
    # (1)

# 結果を表示
print("合計:", total)
ヒント

Pythonは繰り返し処理を行う範囲をインデントで判断しています。for文で繰り返したい処理は、4文字文右にインデントを行って記述しましょう。

プログラムの正答例は、スライド「プログラムの正答例」に載っています。

(1)に入る命令文を提出しましょう。

4. 数列を作成するプログラム

数列とは、高校で学習するテーマの一つで、ある規則に従って並べられた数の列です。

例えば、1から始まり、前の値を2倍した数値が並ぶ数列は次のようになります。

数列はただ数字が並んでいるだけではなく、あるルールに従って並んでいる数字列のことです。

上記の数列は、「1から始まり、ある位置の値は1つ前の値を2倍した数」を並べた数列です。
1の次の値は2、2の次の値は4、4の次は8・・・というように、前の値を2倍した値になります。

今回プログラムで作成する数列の条件は次のとおりです。

  • 数列の値は配列(リスト)変数fibonacciに格納する
  • 0番目の要素の値は1
  • 1番目の要素の値は1
  • 2番目以降の要素の値は「1つ前の要素」と「2つ前の要素」を加算する
  • 今回は要素番号50まで計算を行う

数列を作成するフローチャートとPythonプログラムは次のようになります。

# 数列を格納するリスト(51個分(0番目~50番目)、すべて0で初期化)
fibonacci = [0] * 51

# 最初の2つの値を代入
fibonacci[0] = 1
fibonacci[1] = 1

# 2番目以降を計算して代入(50番目まで)
for i in range(2, 51):
    #(2)

# 50番目の値を表示
print("添字50番の値:", fibonacci[50])

(2)は条件の「2番目以降の要素の値は「1つ前の要素」と「2つ前の要素」を加算する」を行う命令文が入ります。

フローチャートとPythonプログラムの(2)は同じ命令文が入ります。(2)を完成させて実行しましょう。

最後に50番目の値を表示しています。表示された値を提出しましょう。

ヒント

この数列は、フィボナッチ数列と呼ばれています。i番目(iは2以上)以降の要素の値は次の計算式で求めます。

i番目の値 = [i-1]番目の値 + [i-2]番目の値

フィボナッチ数列は次のような値が格納されていきます。

フィボナッチ数列は、「植物の葉の並び」など自然界にも出てくる不思議な数列です。

インターネットを検索してフィボナッチ数列について調べてみましょう。

プログラムの正答例は、スライド「プログラムの正答例」に載っています。

表示された50番目の値を答えてください。

※この再現版では提出は行いません(送信先は未接続です)

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる