目次
Table of Contents
序文
第1章
Pythonを始めよう
1.1
Python(パイソン)とは
1.1.1
Pythonの哲学
1.2
開発ツールの準備
1.2.1
VS Code+Python+Copilotをセットアップする
1.2.2
GitHubアカウントを取得し、Copilotを使えるようにする
1.3
はじめてのPythonコード
1.3.1
Pythonコードの作成手順
1.3.2
AIによるコード補完
1.3.3
AIによるコード補完の効果
1.3.4
コード生成のガイドラインについて
第2章
データと変数
2.1
使えるデータの種類と書き方
2.1.1
データの種類
2.1.2
主なデータ型の解説
練習問題
2-1
2.2
変数の役割
2.2.1
変数とは
2.2.2
変数の使い方
2.2.3
変数名の規則
練習問題
2-2
第3章
基本的な入力と出力
3.1
キーボード入力
3.1.1
input関数
3.1.2
入力した値は文字列になる
3.1.3
コンストラクタ呼び出し
3.1.4
入力プロンプトの指定
3.1.5
sample.pyファイルを実行する
練習問題
3-1
3.2
print()の機能: いろいろな表示方法
3.2.1
print()の基本的な使い方
3.2.2
書式指定
3.2.3
特殊文字(\n、\t)とprint()のカスタマイズ
3.2.4
複雑な書式指定
練習問題
3-2
第4章
プログラムの基礎知識
4.1
プログラムの構造
4.1.1
処理とは
4.1.2
構造化プログラミング
4.2
ライブラリの使い方
4.2.1
Jupyter Notebookファイルを作る
4.2.2
mathライブラリ
4.2.3
tkxlibライブラリ
練習問題
4-1
第5章
演算子: 式を作るための記号
5.1
演算子
5.1.1
基本的な演算子
5.1.2
二種類の割り算がある
5.1.3
割った余りを計算する剰余演算子
5.1.4
べき乗の使い方
5.1.5
代入演算子と複合代入演算子
5.2
AIエージェントにコードを生成させる
5.2.1
ソースコードファイルを作る
5.2.2
ソースコードの先頭にSPDを貼り付ける
5.2.3
コードを生成させる
5.2.4
生成されたコードの確認
練習問題
5-1
5.3
比較演算子
5.3.1
値の比較
5.3.2
inでその中にあるかどうか調べる
5.3.3
isでNoneかどうか調べる
5.4
複雑な条件での比較
5.4.1
論理演算子の種類
5.4.2
論理演算子の使い方
練習問題
5-2
第6章
選択:if文を使う
6.1
if文
6.1.1
if文のSPD
6.1.2
if文のプログラムを手書きしてみる
6.2
AIエージェントにif文のコードを生成させる
6.2.1
SPDの枝に見出しを付けてわかりやすくする
6.2.2
コードを生成させる
練習問題
6-1
6.3
if-elif文
6.3.1
多値選択のSPD
6.3.2
if-elif文を手書きしてみる
6.3.3
AIエージェントにコードを生成させる
6.4
数値の範囲で分類する
6.4.1
数値の範囲で分類するSPD
6.4.2
AIエージェントにコードを生成させる
6.5
elseは省略してもよい
6.5.1
elseのないif文のSPD
6.5.2
AIエージェントにコードを生成させる
6.6
条件式でif-elseを簡単化できる
6.6.1
条件式とは
6.6.2
条件式でif-else文を簡単化する
6.6.3
AIエージェントにコードを生成させる
練習問題
6-2
第7章
反復:for文によるループ
7.1
for文とは
7.1.1
for文の形
7.1.2
for文の動作
7.1.3
for文のSPD
7.1.4
AIエージェントにコードを生成させる
7.2
指定した回数だけ繰り返すfor文
7.2.1
range(n)によるシーケンスを使うfor文
7.2.2
SPDの書き方
7.2.3
AIエージェントにコードを生成させる
7.3
for文の使い方
7.3.1
リストの得点を評価する
7.3.2
AIエージェントにコードを生成させる
7.3.3
リストの得点を数値の範囲で分類・集計する
7.3.4
AIエージェントにコードを生成させる
練習問題
7-1
7.4
break文による反復の中止
7.4.1
break文とは
7.4.2
break文のSPD: ループから脱出する
7.4.3
AIエージェントにコードを生成させる
7.5
continue文による反復処理のスキップ
7.5.1
continue文とは
7.5.2
continue文のSPD: ループの先頭に戻る
7.5.3
AIエージェントにコードを生成させる
練習問題
7-2
第8章
反復:while文によるループ
8.1
while文とは
8.1.1
while文のSPD
8.1.2
AIエージェントにコードを生成させる
練習問題
8-1
8.2
while文には別の書き方もある
8.2.1
式と文の違い
8.2.2
ウォルラス演算子とは
8.2.3
ウォルラス演算子をwhile文で利用する
8.2.4
AIエージェントにコードを生成させる
練習問題
8-2
第9章
リストの使い方
9.1
リストの基本操作
9.1.1
リストの作成
9.1.2
要素のインデックスによるアクセス
9.1.3
for文によるリストのアクセス
練習問題
9-1
9.2
メソッドによる操作
9.2.1
オブジェクトについて
9.2.2
リストのメソッド
練習問題
9-2
9.2.3
CSV文字列とリストの相互変換
練習問題
9-3
9.3
組み込み関数によるリストの操作
9.3.1
リストの要素を集計する
9.3.2
ソートした新しいリストを作成する
9.4
部分リストの作成
9.4.1
スライス構文の書き方
9.4.2
スライス構文の使用例
練習問題
9-4
第10章
Pythonicなリストの使い方
10.1
リスト内包表記: []内のリスト生成式
10.1.1
基本形:変換による生成式
10.1.2
リスト内包表記のSPDの書き方
10.1.3
条件付き:フィルタリングによる生成式
10.1.4
条件付きリスト内包表記のSPDの書き方
10.1.5
2次元リストでリスト内包表記を使う
練習問題
10-1
10.2
イテレータ関数の利用
10.2.1
イテレータとは
10.2.2
enumerate()関数
10.2.3
enumerate()のSPDとコード生成
10.2.4
zip()関数
10.2.5
zip()のSPDとコード生成
10.2.6
複数のリストをまとめたリストを生成する
練習問題
10-2
第11章
タプルとセットの使い方
11.1
タプル
11.1.1
タプルの特徴と作り方
11.1.2
タプルの操作
11.1.3
タプルのメソッド
11.2
セット
11.2.1
セットの特徴と作り方
11.2.2
セットの操作
11.2.3
集合演算
11.2.4
イミュータブルなセット
11.2.5
セットのメソッド
11.3
コレクション相互の型変換
練習問題
11-1
第12章
辞書の使い方
12.1
辞書(dict)の基本
12.1.1
要素はキーと値のペア
12.1.2
値の取り出しと変更
12.1.3
要素を追加する
12.1.4
要素を削除する
12.1.5
キーがあるか確認してから読み出す
12.1.6
辞書をマージする
練習問題
12-1
12.2
辞書をfor文で処理する
12.2.1
for文による辞書のループ
12.2.2
辞書のビューを作る
12.2.3
for文で辞書のitems()メソッドを使う
練習問題
12-2
12.3
実践的な辞書の使い方
12.3.1
辞書のリスト
12.3.2
for文で特定のユーザーを検索する
12.4
検索用の辞書を作る
12.4.1
辞書の生成方法
12.4.2
辞書内包表記とは
12.4.3
検索用の辞書(user_map)を辞書内包表記で作成する
12.5
辞書のソート(並べ替え)
12.5.1
ソートの詳細指定
12.5.2
ラムダ式とは
12.5.3
ソート(並べ替え)の実践
練習問題
12-3
第13章
関数の役割
13.1
関数の作り方・使い方
13.1.1
関数を使う利点ー役割の分担
13.1.2
関数の定義と使い方
13.1.3
関数定義を含むSPDの書き方
13.1.4
関数にデータを渡す
13.1.5
関数から処理結果を受け取る
13.1.6
複数の引数と戻り値が使える
13.1.7
デフォルト引数
練習問題
13-1
13.2
AIによる(本格)コード生成
13.2.1
AIを利用した開発手順
13.2.2
要件定義とは
13.2.3
要件定義のテンプレート
13.2.4
要件定義の作成例
13.2.5
関数化はAIに判断させる
13.2.6
マークダウン記法について
13.3
要件定義書から仕様書とソースコードを作成する
13.3.1
仕様書の作成を依頼する
13.3.2
コード生成を依頼する
13.3.3
ソースコードをチェックする
13.3.4
まとめ
練習問題
13-2
13.4
importの使い方
13.4.1
importの対象
13.4.2
import文の書き方
13.4.3
importに備える
13.4.4
適切な対策とは
練習問題
13-3
13.5
main関数を作る
13.5.1
コードを比較する
13.5.2
main関数を生成するには
練習問題
13-4
第14章
ファイルとディレクトリの操作
14.1
osモジュールとpathlibモジュール
14.1.1
pathlibモジュール
14.2
パスの操作
14.2.1
絶対パスと相対パス(ルートとカレント)
14.2.2
パスの作成
14.2.3
パスの結合
14.2.4
パスの分解(ファイル名・親ディレクトリなど)の取得
14.2.5
パスの存在確認
14.2.6
ファイルかディレクトリかを判定する
14.3
基本的な操作
14.3.1
基本操作
14.3.2
ファイルとディレクトリを取得する
練習問題
14-1
第15章
ファイル入出力
15.1
テキストファイルを入力する
15.1.1
Pathオブジェクトでファイルパスを表す
15.1.2
ファイルの内容を変数に一括入力する
15.1.3
1行ずつ入力する
15.2
テキストファイルを出力する
15.2.1
1行ずつ出力する
15.2.2
文字列を一括出力する
15.2.3
リストを一括出力する
練習問題
15-1
15.3
例外(エラー)への対処
15.3.1
例外とエラーログ
15.3.2
try文とは
15.3.3
try文と例外の種類
15.3.4
例外クラスの系統
15.3.5
例外処理の汎用パターン
15.3.6
例外を発生させるraise文
練習問題
15-2
15.4
CSVファイルの読み書き
15.4.1
CSVファイルとcsvモジュール
15.4.2
CSVをリストとして読み出す
15.4.3
リストをCSVとして書き込む
15.4.4
CSVを辞書として読み出す
15.4.5
辞書をCSVとして書き込む
15.5
ファイル要件の書き方について
練習問題
15-3
第16章
クラスとオブジェクト
16.1
オブジェクトとは
16.1.1
なぜオブジェクトを使うのか
16.1.2
クラスはオブジェクトの土台
16.1.3
ひとつのクラスからたくさんのオブジェクト
16.2
クラスの仕組み
16.2.1
クラスを定義するSPD
16.2.2
ソースコードの自動生成
16.2.3
型ヒントについて
16.3
インスタンスと参照
16.3.1
インスタンスにはデータ属性だけが含まれている
16.3.2
変数には参照が入っている
16.3.3
selfに参照をセットしてメソッドを実行する
16.3.4
ミュータブルとイミュータブル
練習問題
16-1
16.4
クラスに帰属する変数とメソッド
16.4.1
クラス変数
16.5
特殊メソッド
16.5.1
特殊メソッドの作成
16.5.2
特殊メソッドの利用
16.6
dataclass
16.6.1
dataclassとは
練習問題
16-2
第17章
クラス継承
17.1
クラス継承とは
17.1.1
クラス継承の方法
17.1.2
スーパークラス(Member)
17.1.3
サブクラス(GeneralMember)
17.1.4
継承のソースコード
17.1.5
継承の検証
17.2
オーバーライド
17.2.1
サブクラスでのオーバーライド
17.2.2
オーバーライドの検証
練習問題
17-1
17.3
いろいろな継承
17.3.1
オブジェクトクラスの継承
17.3.2
is-aとhas-a
17.3.3
多重継承
17.3.4
ミックスイン
17.4
ポリモーフィズム
17.4.1
同じメソッドを持つサブクラスでのポリモーフィズム
17.4.2
同じメソッドを持つクラスでのポリモーフィズム
練習問題
17-2
第18章
AIエージェントとの協働
18.1
オブジェクトの発見
18.1.1
6つの問いで考える
18.1.2
AIに発見させる
18.2
AIによるコード生成
18.2.1
要件定義を作る
18.2.2
AIに仕様書作成を依頼する
18.2.3
AIのオブジェクト発見力の検証
18.2.4
AIが生成したコード
練習問題
18-1
あとがき
練習問題の解答
資料
1.
SPDとSPDエディタ
1.1
SPDの発祥と再生
1.2
SPDとは
1.3
SPDエディタについて
1.4
SPDの書き方
1.5
SPDエディタの使い方
2.
SPDパターン集
3.
tkxlib 関数一覧
tkxlib.kbinput
安全な input() ラッパー
tkxlib.disp_image
画像表示・アニメーション
4.
サポートウェブ情報