リストを検索・集計しよう
条件に合う値を探し、個数や合計を求めます。
必須
これまでの内容から、3問を復習しよう
前回までの内容から、毎回ランダムに3問が選ばれます。復習用ファイルは一つだけ作り、問題ごとに中身を書き換えます。
lesson07_review.pyレッスン番号と使う場面が分かる名前にして、あとで探しやすくします。
- VS Code上部の「ファイル」をクリック
- 「新しいテキスト ファイル」をクリック
- Ctrl+S(Macは⌘+S)を押す
lesson07_review.pyと入力して「保存」を押す
ここを確認:画面上のタブ、または左側のファイル一覧にlesson07_review.pyと表示されたら準備完了です。
変数
x = 3
x = x * 2
print(x)結果は?
ifとfor
for i in range(4):
if i >= 2:
print(i)表示される組は?
リスト
A=[2,4,6]
print(A[2])結果は?
実際に自分のパソコンで行ってから、チェックを入れてください。
線形探索と条件付き集計を実行できる。
- ✓順番に探す意味を説明できる
- ✓件数を数えられる
- ✓最大値を更新できる
検索は何をしているの?
- 線形探索の流れを図で理解する
- 探すコードを入力する
- 条件に合う個数を数える
- 最大値を更新する
- 必須問題で確かめる
名簿から名前を探すとき、先頭から一人ずつ確認できます。この方法を線形探索と呼びます。値が見つかるまで同じ比較を繰り返します。
メリット:リストの並び方が分からなくても、順番に確認すれば必ず探せます。
値を探して実行しよう
lesson07_step02.pyレッスン番号と使う場面が分かる名前にして、あとで探しやすくします。
- VS Code上部の「ファイル」をクリック
- 「新しいテキスト ファイル」をクリック
- Ctrl+S(Macは⌘+S)を押す
lesson07_step02.pyと入力して「保存」を押す
ここを確認:画面上のタブ、または左側のファイル一覧にlesson07_step02.pyと表示されたら準備完了です。
lesson07_step02.pyへ見本コードを一文字ずつ入力する- 実行前に結果を予想する
- 保存してVS Code右上の「▶」を押す
- 下部ターミナルの結果を教材と比べる
scores = [70, 85, 60, 90]
target = 90
found = False
for score in scores:
if score == target:
found = True
print(found)最後に表示されるものは?
先に自分のパソコンで実行しましょう。画面に出た結果を見てから、下のボタンを押します。
件数と最大値を求めよう
scores = [70, 85, 60, 90]
count = 0
maximum = scores[0]
for score in scores:
if score >= 80:
count = count + 1
if score > maximum:
maximum = score
print(count)
print(maximum)80以上は85と90の2個です。maximumは70→85→90と更新されます。
表示される2行は?
ここまで分かったか確認しよう
lesson07_step04.pyこの回の必須問題で使うファイルです。問題ごとに中身を書き換えて使います。
- VS Code上部の「ファイル」をクリック
- 「新しいテキスト ファイル」をクリック
- Ctrl+S(Macは⌘+S)を押す
lesson07_step04.pyと入力して「保存」を押す
ここを確認:画面上のタブ、または左側のファイル一覧にlesson07_step04.pyと表示されたら準備完了です。
lesson07_step04.pyを作る- 入力・保存・実行する
- ヒントと答えで確認し、同じファイルを書き換える
偶数を数える
[2, 5, 8, 9, 12]の偶数を数えます。
最小値を探す
リストの最小値を、順番に比較して求めます。
70点以上の合計
[55, 70, 82, 64, 90]から70点以上だけを合計します。
実際に自分のパソコンで行ってから、チェックを入れてください。
共通テスト型の問題を3問解こう
Pythonで動かした経験を思い出し、コードを上から読みます。まず自分で考え、困ったときだけボタンを開きましょう。
線形探索の比較回数
A = [2, 4, 6, 8]
target = 6
先頭から順にtargetと等しいか調べ、見つかったら終了する見つかるまで何回比べる?
条件に合う個数を数える
A = [60, 80, 70, 50]
kosu = 0
各要素について繰り返す:
もし 要素 >= 70 ならば:
kosu = kosu + 1最後のkosuはいくつ?
最大値の更新を追う
A = [4, 9, 6]
saidai = A[1]
残りの要素を順に調べる:
もし 要素 > saidai ならば:
saidai = 要素最後のsaidaiは?
できるだけ解いてみよう
- 1. 5を探す
- 2. 10以上を数える
- 3. 奇数だけ表示する
- 4. 文字列を探す
- 5. 合格者の合計点
- 6. 最小値を求める
- 7. 見つかった位置を表示
- 8. True/Falseで記録
- 9. 平均以上を数える
- 10. 検索を関数にする