━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
実践アルゴリズムとデータ構造:例題bの要点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●例題b1 (最大公約数)

条件式                  不等号 >  論理積 and
return 式               関数の値を返却
関数名(引数)            関数呼び出し(組み込み関数と同じ)
print(…, end=' ')       表示の末尾の文字列の指定

def 関数名(引数):       関数定義(本体は字下げ範囲)
    '説明'
    文

while 条件式:           反復(条件が成り立つ間,字下げ範囲を反復実行)
    文

if 条件式:              条件文(条件が成り立つか否かに応じて文1か文2を実行)
    文1
else:
    文2

最大値アルゴリズム

実行環境(Paiza.IO)の利用

●例題b2 (データ構造)

入れ子のデータ構造

実行環境(Python Tutor)によるデータ構造の可視化

●例題b3 (データ操作)

リスト[i]               i 番目の要素(先頭は0番目から)
リスト[i:j]             i 番目から j 番目の直前まで
リスト[:i]              先頭から i 番目の直前まで
リスト[i:]              i 番目以降

リスト.append(要素)     末尾への追加
リスト.insert(i, 要素)  i 番目に挿入
リスト[i] = 要素        i 番目の要素を更新

●例題b4 (表形式データの読み込み)

open(ファイル名, …)     ファイル利用
csv.reader(CSVファイル) CSVファイルをリストのリストに変換

list(列)                リストへの変換
(変数,…,変数) = 列      代入による列の分解
関数(*列)               引数での列の展開

{}                      空の辞書
辞書[キー] = 式         辞書への追加/更新
辞書.items()            辞書のキーと値のタプルの列
辞書.keys()             辞書のキーの列
辞書.values()           辞書の値の列
辞書[キー]              辞書の参照

for 変数 in 辞書:       辞書の走査(各キーに対する文の実行)
    文

for (要素,…,要素) in タプル列:          タプル列の走査
    文

●例題b5 (表形式データの利用)

\n                      改行文字

math.dist(点1,点2)      2点間の距離

print(f'{d:.1f}')       小数の表示桁数の指定

●例題b6 (表形式データの活用)

条件式                  要素の所属判定 in  論理和 or
len(列)                 列の長さ

●例題b7 (データ構造の活用)

random.randint(値1,値2) 整数の無作為抽出

列.index(要素)          列要素の位置
max(列)                 最大要素
min(列)                 最小要素
reversed(列)            反転した列
sorted(列)              整列した列

リスト.reverse()        反転
リスト.sort()           整列
[(式,式) for 変数 in 列]        タプルのリストの生成

set(列)                 集合への変換(重複除去)
集合.add(要素)          要素の追加
集合.remove(要素)       要素の削除

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
実習のホームページ

山田 俊行
https://www.cs.info.mie-u.ac.jp/~toshi/