Python入門[2&3対応]

概 要

プログラミング言語「Python」を基本からやさしく解説した初心者から上級者まで使える実践的教科書です。Pythonは、WebやGUIアプリケーション、科学計算、アニメーションなど様々な分野で使われ、GoogleやNASA、Disneyも主要言語としているシンプルなプログラミング言語です。本書では、実行環境の準備から、基礎文法、条件分岐やループの書き方、文字列処理、日本語ファイルの扱い、関数、例外処理、モジュール化、正規表現、ライブラリ、WebフレームワークDjangoとWeb2py、さらには高度な計算を実現するためのマルチスレッド処理や科学計算の可視化の実現方法まで解説しています。全項目サンプルコード付き。

著者 株式会社エスキュービズム、細田謙二、オレンジ岸本、石井光次郎、岩川建彦、岡田正彦
価格 本体2700円(税別)
ISBN 978-4-7980-2655-8
発売日 2010/6/25
判型 A5
色数 2色
ページ数 544
CD/DVD
対象読者 初級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

第1章 Pythonへようこそ

1-1 Pythonの特徴

Pythonはシンプル

Pythonは強力

Pythonは人気

Column The Zen of Python(パート1)

1-2 本書について

本書の目的

本書のスタイル

本書の構成

第2章 実行環境の用意

2-1 Pythonのインストール

Python最新版のダウンロード

One Point バージョン2系とバージョン3系

Linux

Unixへのインストール

Windowsへのインストール

One Point パスの設定

Mac OS Xへのインストール

2-2 起動と終了

2種類の起動方法

インタラクティブモードで起動する

One Point 便利なhelp関数

スクリプトモードで起動する

One Point 日本語の扱い

2-3 Python開発環境

エディタ

One Point 拡張インタラクティブシェル

第3章 Pythonの基本

3-1 基本操作

Hello World

コメント

変数の定義

演算子

自動的型変換

明示的型変換

基本的な型

関数の呼び出し

モジュールのインポート

長い単一文の書き方

3-2 複合文

複合文の基本

pass文

単一行の複合文

複合文の種類

One Point プログラムの構造

One Point print文からprint関数へ

3-3 オブジェクト

全てがオブジェクト

変数はオブジェクトへの参照

変更可能・不可能オブジェクト

オブジェクトの属性

第4章 リスト(List)

4-1 リストの概要

リストの概要を眺める

4-2 リストの作成

直接指定して作る

連番で作る

シーケンスから作る

リストの一部から作る(スライス)

4-3 リストの読み込み

インデックスで指定する

位置を調べる

指定要素の数を数える

指定要素が含まれているか調べる

リストの長さを調べる

最大・最小を調べる

その他の集約関数

4-4 リストの更新

インデックスを指定して代入する

範囲を指定してリストを差し込む

要素を加える

リストを拡張する

要素を挿入する

要素を並べ替える

One Point Python3ではcmp引数が廃止

Column Pythonは今後速くなる?

4-5 リストの削除

要素で指定して削除する

インデックスまたはスライスで指定して削除する

4-6 その他のリストの操作

リストのコピー

リストの比較

リスト内包表記

第5章 辞書(Dictionary)

5-1 辞書の概要

辞書の概要を眺める

5-2 辞書の作成

直接指定して作る

dict関数を使う

コピーして作る

キーのリストから作る

5-3 辞書の読み込み

キーを指定する

メソッドでキーを指定する

キー・値・キーと値のリストを取得する

One Point Python3での戻り値

キーの存在を確認する

One Point has_keyメソッドの廃止

辞書の長さを知る

5-4 辞書の更新

キーを指定して変更する

メソッドでキーを指定する

2つの辞書を結合する

5-5 辞書の削除

キーを指定して削除する

キーで値を取り出して削除する

キーと値のペアを取り出しつつ削除する

Column 順序付き辞書(OrderedDict)

5-6 その他の辞書の操作

辞書のコピー

辞書の比較

辞書内包表記(Python3系のみ)

第6章 タプル(Tuple)

6-1 タプルの概要

タプルの概要を眺める

One Point 単一文字列タプルに注意

6-2 タプルの作成

直接指定して作る

tuple関数を使う

タプルの一部から作る(スライス)

6-3 タプルの読み込み

インデックスで指定する

位置を調べる

指定要素の数を数える

指定要素が含まれているか調べる

タプルの長さを調べる

最大・最小を調べる

その他の集約関数

6-4 タプルの更新

タプルは変更不可能

Column タプルはどれだけ効率的か?

6-5 タプルの削除

要素の削除は不可能

6-6 その他のタプルの操作

タプルのコピー

タプルのソート

タプルの比較

第7章 セット(Set)

7-1 セットの概要

セットの概要を眺める

7-2 セットの作成

set関数・frozenset関数を使う

要素の論理和から作る

要素の論理積から作る

要素の差集合から作る

要素の対称差から作る

集合演算子を使う

直接指定して作る(Python3のみ)

7-3 セットの読み込み

forループによる要素の取得

部分集合の確認をする

上位集合の確認をする

要素の存在の確認をする

要素の数の確認をする

Column PEPとは?

7-4 セットの更新

要素を追加する

要素の論理和で更新する

要素の論理積で更新する

要素の差集合で更新する

要素の対称差で更新する

代入演算子を使う

7-5 セットの削除

要素を指定して削除する

要素を取り出して削除する

要素を全て削除する

7-6 その他のセットの操作

セットの比較

セットのコピー

セット内包表記(Python3のみ)

Column 内包表記をRubyで書くと

第8章 条件分岐とループ

8-1 条件分岐

if-then-else

else-ifパート

One Point switch文は存在しない

条件式

One Point 比較演算子

One Point 論理演算子

One Point 3項演算子

8-2 ループ

Pythonでのループ処理

forループ

whileループ

continue・break・else

第9章 イテレータ

9-1 イテレータの基本

イテレータとは

イテレータの挙動

One Point Python3とイテレータ

9-2 ジェネレーター

ジェネレーターとは

基本的な作成方法

内包表記による作成

One Point 高度な使用方法

第10章 文字列(String)

10-1 文字列の概要

文字列の概要を眺める

10-2 文字列の作成

直接指定して作る

フォーマット文字列から作る

One Point Python3のformatメソッドでより便利に

文字列の一部から作る(スライス)

文字列を結合する

10-3 文字列の読み込み

インデックスで指定する

文字列を検索する

文字列を検索してインデックスを返す

文字列の出現回数を調べる

開始文字・終了文字を調べる

英数文字の確認

数字の確認

大文字・小文字の確認

空白文字の確認

識別子の確認(Python3のみ)

表示可能な文字の確認(Python3のみ)

10-4 文字列の更新

文字列は変更不可能

文字列を分割する

文字列を改行文字で分割する

文字列を1回だけ分割する

文字列を指定文字列で置き換える

タブ幅に展開する

文字列を変換テーブルを使って置き換える

One Point Python3系のmaketrans関数

大文字・小文字に変換する

左寄せ・中央寄せ・右寄せ文字列に変換する

0詰め文字列に変換する

10-5 文字列の削除

文字列は変更不可能

文字列から特定の文字を取り除く

10-6 Unicode文字列と文字コード変換

Pythonの文字列と日本語

One Point キャラクターコード

Unicode文字列

Unicode文字列と文字列の相互変換

One Point デフォルトエンコーディング

Unicode文字列への変換

Unicodeから文字列への変換

Python3から文字列はデフォルトでUnicodeに

One Point bytes型

One Point bytearray型

第11章 ファイル入出力

11-1 ファイルの基本操作

ファイル書き込みの基本

ファイル読み込みの基本

行ごとに書き込む

行ごとに読み込む

ポインタを移動する

ファイルの追加書き込み

バイナリモードで開く

11-2 日本語ファイルを扱う

基本的な方法

codecsモジュールを使う方法

BOM付き文字列の取り扱い

11-3 パスの構築

os.path モジュール

パス成分の結合

ディレクトリ名の取得

ファイル名

リーフ・フォルダ名の取得

絶対パスの取得

パスの分解

パスの正規化

ユーザホームディレクトリの展開

共通パス成分の取得

11-4 ファイルシステム上の操作

osとshutilモジュール

存在チェック

ファイルの削除

ディレクトリの作成

ディレクトリの連続作成

ディレクトリの削除

ディレクトリの連続削除

ディレクトリの全削除

ファイルやディレクトリの移動

ファイルのコピー

カレントディレクトリの変更

カレントディレクトリの絶対パスを取得

ファイル・ディレクトリ名のリストを取得

ディレクトリのコピー

globモジュールでパターン検索

ファイル・ディレクトリ名を再帰的に取得

ファイル・ディレクトリのメタデータの取得

アクセス権限の確認

アクセス権限の変更

環境変数の取得

11-5 テンポラリファイルの利用

tempfileモジュール

一時ディレクトリの作成

一時ファイルの作成

11-6 ファイルライクオブジェクト

StringIOモジュール

One Point Python3でのStringIO

第12章 関数

12-1 関数の引数

関数の基本定義&呼び出し

一般的な引数

One Point キーワード付き引数

デフォルト値の指定

シーケンス型の可変長引数

辞書型の可変長引数

引数の順番

参照渡しと値渡し

One Point 配列のデフォルト値に注意

12-2 関数の戻り値

戻り値の設定

One Point アンパック代入

12-3 関数オブジェクト

関数オブジェクトの概要

One Point 無名関数

12-4 デコレーター

デコレーターの概要

基本文法

One Point デコレーターのネスト

応用例

12-5 スコープ

スコープの概要

One Point グローバル変数、ローカル変数の表示

One Point ネストスコープ変数の操作(Python3のみ)

第13章 クラス

13-1 インスタンスに係わる文法

インスタンスの生成

インスタンスの属性

One Point 属性について

インスタンスのメソッド

特殊メソッド

One Point コンストラクタ

One Point 演算子のカスタマイズ

プロパティ

13-2 クラスに係わる文法

クラス属性

クラス・メソッドとスタティックメソッド

13-3 継承

一般的な継承

One Point インスタンスの判定

One Point 継承元のメソッド呼び出し

One Point 抽象クラスについて

多重継承

One Point 継承順の表示

第14章 例外処理

14-1 処理の分岐

try-except文

else節

One Point 捕捉範囲の限定について

複数のexcept節

finally節

One Point with文の使用

14-2 例外情報を取り出す

例外インスタンスの取得

トレースバックの表示

14-3 例外を発生させる

raise文

One Point 例外の再発生

14-4 独自の例外

Exceptionクラス

14-5 例外の種類

組み込みで用意されている例外クラス

第15章 モジュール

15-1 単一ファイルのモジュール

インポート文の基本

簡便なインポート

15-2 複数ファイルのモジュール

パッケージの概要

One Point __init__.pyの編集

15-3 モジュールのパスを通す

sys.path

One Point 開発パッケージのパスを通す

15-4 スクリプト化

スクリプトとしての利用法

One Point コマンド引数の取得

15-5 ライブラリの利用

Python標準ライブラリ

Python Package Index(PyPI)

bitbucket

One Point パッケージ管理ツール(easy_install)の利用

第16章 日時の操作

16-1 datetimeクラス

日時情報の概要

日時を生成

現在日時を取得

年・月・日・時・分・秒・マイクロ秒を個別に取得

曜日を取得

日時の加算・減算

日時同士の差分を計算

日時の比較

協定世界時の取得

日時を文字列へ変換

16-2 dateクラス

dateクラスの概要

dateクラスの基本的な操作

datetimeオブジェクトとdateオブジェクトの変換

16-3 dateutilsモジュール

dateutilsモジュールの概要

年・月の加算

月初・月末の取得

特定規格の日時文字列を解析

第17章 正規表現

17-1 reモジュールの基本

基本的な流れ

compile(正規表現オブジェクト生成)

search(検索)

match(照合)

sub(置換)

修飾子

raw string記法

Unicodeでの検索

部分一致

後方参照

findall(手軽に部分一致)

split(正規表現で文字列分割)

escape(メタ文字をエスケープ)

先読みと後読み

Column 正規表現のコンパイルはどの程度効率的?

17-2 便利なテクニック

ひらがな・カタカナ・漢字・ASCII文字判定

メタ文字を全角文字に対応

第18章 データのやり取り

18-1 オブジェクトの直列化

pickleモジュール

文字列ベースの直列化と復元

ストリーム上の直列化と復元

循環参照

Python3

18-2 JSONデータの変換

jsonモジュール

エンコード・デコード

型変換表

独自のエンコード処理

18-3 XMLデータの利用

lxmlモジュール

セットアップ

XMLを解析する

XMLを編集する

XPathを使う

18-4 CSVデータの読み書き

csvモジュール

CSVを読み込む

文字列をCSVとして処理

CSVの書式を調整する

行を辞書型で受け取る

1行目をフィールド名として解釈する

CSVを書き込む

18-5 データベースの利用

リレーショナル・データベースを利用する方法

基本的な処理(SQLite3)

DBファイル作成(SQLite3)

データ抽出(SQLite3)

MySQLの利用(MySQLdb)

第19章 ウェブの基本ツール

19-1 HTTP通信を行う

urllib2とurllibモジュール

GETリクエストを送信する

GETパラメータを設定する

POSTリクエストを送信する

HTTPヘッダの設定

タイムアウト時間の設定

リクエスト時のエラー処理

Column 実はコロンはいらない?

19-2 メール送信処理

smtplibとemailモジュール

メールを送信する

外部メールサーバから送信

メッセージを構築する

日本語対応

CCやBCCでメールを送信

19-3 CGI連携

対象とするCGI

Apacheの設定

基本的な出力方法

デバッグ出力(cgitbモジュール)

GET・POST値の取得(cgiモジュール)

Cookieを読み込む

Cookieへ書き込む

第20章 メディアファイルの作成

20-1 画像の作成

PILライブラリ

セットアップ

基本的な処理

基本的なエラー処理

画像フォーマット変更

カラーモード変更

拡大・縮小

回転

反転

切り貼り

透過画像に加工して貼り付け

透過PNGを重ねる

描画する

フィルタをかける

画質の調整

URLからサムネイル画像を生成する

モノクロ画像生成と白黒反転

20-2 PDFの作成

Report Labライブラリ

セットアップ

最も簡単なPDF出力例

日本語の利用

シンプルなドキュメント作成

テンプレートを使ったドキュメント作成

画像の配置

第21章 ウェブフレームワーク

21-1 Djangoの基本

Djangoの概要

セットアップ

プロジェクトの作成

アプリケーションの作成

開発Webサーバの起動

Hello World

HTMLとして表示させる

Column The Zen of Python(パート2)

21-2 Djangoの活用(データベース&フォームの利用)

基礎となるアプリケーションの生成と設定

モデルの定義

データベースへの反映

設定の動作確認

ブログ記事投稿ページの作成

ブログ記事一覧ページの作成

モデルフィールド詳細

Column 括弧のインポート?

21-3 Djangoの活用(データの操作)

基本的なCRUDの例

データ抽出

21-4 Djangoの活用(urls.py)

urls.py

include関数によるurls.pyの分割

21-5 Djangoの活用(テンプレートシステム)

Djangoテンプレートシステム

テンプレート変数

フィルター

タグ

コメント

21-6 Web2pyの基本

Web2pyの概要

セットアップ

アプリケーションの作成

Hello World

21-7 Web2pyの活用(データベース&フォームの利用)

テーブル定義

エントリー入力画面の作成

エントリー一覧の表示

21-8 Web2pyの活用(ディレクトリ構成)

ソースコードを格納するディレクトリ

リソースを格納するディレクトリ

一時ファイルを格納するディレクトリ

Column 辞書と辞書から新たな辞書を作る

21-9 Web2pyの活用(DAL)

データベースの指定

データベースの操作

クエリの構築

21-10 Web2pyの活用(Field)

オプション

フィールドタイプ

21-11 Web2pyの活用(オブジェクト)

requestオブジェクト

responseオブジェクト

sessionオブジェクト

cacheオブジェクト

21-12 Web2pyの活用(その他)

ナビゲーション

ビューヘルパー

テンプレート詳細

その他

Column The Zen of Python(パート3)

21-13 Web2pyの活用(Google App Engine)

開発サーバーの起動

本番サーバーへのデプロイ

Column Google App Engine(GAE)

第22章 バッチ処理の基本ツール

22-1コマンドラインオプションの解釈

getoptモジュール

動作確認用スクリプトの設置

オプション名(短)の設定

オプション名(長)の設定

オプションと引数

実際のオプション処理イメージ

Column JAVA

.NETライブラリの利用

22-2 ログを出力する

loggingモジュール

基本的な処理

保存内容を標準出力する

重要度の設定

書式の設定

共通設定

ログのローテーション

22-3 管理タスクの実行

fabricモジュール

fabコマンド

APIのインポート

ローカルでのコマンド実行

リモートでのコマンド実行

アップロード

ダウンロード

エラー処理

One Point settings関数の詳細

第23章 GUIアプリケーション

23-1 デスクトップアプリを作る

PyQtの概要

セットアップ

フレームの表示

ボタンの配置とシグナル

各種ウィジェットとレイアウト

カスタムウィジェットの作成とイベント

描画

メニューの作成とファイルダイアログ

デプロイ

23-2 Andoridケータイを扱う

Android Scrpiting Environment

Android SDKの準備

エミュレータの準備

Android端末の設定を変更する

ASEとPythonのインストール

ファイル配置

コーディングの解説

第24章 プログラムの調査

24-1 オブジェクトの属性を調査

inspectモジュール

getmembers関数

getargspec関数

24-2 対話型デバッグツール

pdbモジュール

24-3 実行時間を調べる

profileモジュール

Pythonインタプリタから実行して表示

スクリプトを実行して解析する

第25章 開発支援フレームワーク

25-1 ユニットテスト

unittestモジュール

テストケースを書く

One Point サードパーティ製のライブラリ

本番コードを書く

テストを実行する

25-2 ドキュメンテーション

sphinxモジュール

セットアップ

初めの一歩

段落

節の見出し

プログラムコード

画像の貼り付け

箇条書きのリスト

テーブル

書体の強調

注意書き

APIの仕様

外部リンク

内部リンク

脚注

グローバルな引用

置換

コメントアウト

conf.pyの設定

第26章 関数型プログラミング

26-1 関数型プログラミングの基本

関数型プログラミングの特徴

map関数

One Point zip関数

filter関数

reduce関数

One Point operatorモジュール

26-2 イテレータ・ツール

itertoolsモジュール

isliceによる要素の切り出し

groupbyによる重複要素のグループ化

teeを用いたイテレータのコピー

One Point 参照コピーの利用例

repeatを用いた反復処理

Column “ss クラス名”で検索

第27章 高度な計算

27-1 マルチスレッド処理

threadingモジュール

スレッドの開始

ロックの基本

再入可能ロック

スレッドの終了を待つ

GUIへの応用

One Point Global Interpriter Lock(GIL)

27-2 科学計算と可視化

使用するライブラリ

Scipy(numpy)のセットアップ

行列計算

matplotlibのセットアップ

データの可視化

パラメータ最適化の例

第28章 国際化

28-1 国際化の手順

gettextモジュールの利用手順

babelモジュールのセットアップ

国際化対応のコードを書く

コードから翻訳対象を抽出する

翻訳対象を言語ごとに翻訳する

翻訳したものをコンパイルする

コンパイルしたものを国際化対応のコードで利用する

One Point 翻訳ファイルのアップデート

28-2 発展編

代替利用

複数形

遅延評価

PR

秀和システム