Python 3

Python3のテキストができました.

Python3のテキスト
無料で差し上げますので,意見や感想をくださいませ.
→ katsu_wm%mukogawa-u.ac.jp (’%’を’@’に変えるとメールアドレスになります)

公開されている情報が豊富なPythonですが,アプリづくりのための一通りの入門ができる書籍などが見当たらない上,Kivyの日本語の情報も少ないのでテキストを自前で作ることにしました.
 
特に,既に別の言語を習得している人が,手っ取り早くPythonに取り掛かるのに役立つと考えています.
 
Pythonには有用なライブラリ(モジュール)がたくさん公開されているので,いろんなモジュールの使い方を簡単に説明した「モジュールブック」みたいな本も書いているところです.(途中です)
モジュールブックは現在:
 OpenCV,Pillow,pygame,NumPy,matplotlib,SymPy,hashlib
について記述しています.
 
—【テキスト本体の目次】—————————————————–
1 はじめに   1 
  1.1 Pythonでできること   1 
  1.2 本書の内容   1 
  1.3 処理系の導入(インストール)と起動の方法   2 
  1.4 使用するGUIライブラリ   2 
  1.5 Pythonに関する詳しい情報   2 
2 Pythonの基礎   2 
  2.1 テキストファイルに作成したプログラムの実行   3 
    2.1.1 プログラム中に記述するコメント   3 
    2.1.2 プログラムのインデント   3 
  2.2 変数とデータの型   4 
    2.2.1 数値   4 
      2.2.1.1 数学関数   6 
      2.2.1.2 乱数の生成   6 
    2.2.2 文字列   7 
      2.2.2.1 文字列の分解と合成   8 
      2.2.2.2 文字列の置換   9 
      2.2.2.3 文字コード   9 
    2.2.3 真理値   10 
    2.2.4 型の変換   10 
  2.3 データ構造   10 
    2.3.1 リスト   10 
      2.3.1.1 例外処理   15 
    2.3.2 タプル   16 
    2.3.3 セット   17 
    2.3.4 辞書型   19 
    2.3.5 添字の高度な応用   20 
  2.4 制御構造   21 
    2.4.1 繰り返し(1): for   21 
      2.4.1.1 forを使ったリストの生成   22 
    2.4.2 繰り返し(2): while   23 
    2.4.3 繰り返しの中断とスキップ   24 
    2.4.4 条件分岐   24 
  2.5 入出力   24 
    2.5.1 標準出力   25 
      2.5.1.1 出力データの書式設定   25 
    2.5.2 標準入力   27 
    2.5.3 ファイルからの入力   28 
      2.5.3.1 バイト列の扱い   31 
      2.5.3.2 ファイルの内容を一度で読み込む方法   31 
    2.5.4 ファイルへの出力   31 
    2.5.5 ディレクトリの扱い   32 
      2.5.5.1 カレントディレクトリに関する操作   32 
      2.5.5.2 ディレクトリ内容の一覧   32 
  2.6 関数の定義   33 
  2.7 オブジェクト指向プログラミング   35 
    2.7.1 クラスの定義   35 
      2.7.1.1 コンストラクタ   35 
      2.7.1.2 メソッドの定義   35 
      2.7.1.3 クラス変数   36 
      2.7.1.4 属性の調査   37 
3 KivyによるGUIアプリケーションの構築   38 
  3.1 Kivyの基本   38 
    3.1.1 アプリケーションプログラムの実装   38 
    3.1.2 GUI構築の考え方   39 
      3.1.2.1 Widget(ウィジェット)   39 
      3.1.2.2 Layout(レイアウト)   39 
      3.1.2.3 Screen(スクリーン)   40 
    3.1.3 ウィンドウの扱い   40 
  3.2 基本的なGUIアプリケーション構築の方法   41 
    3.2.1 イベント処理(導入編)   41 
      3.2.1.1 イベントハンドリング   42 
    3.2.2 アプリケーション構築の例   43 
    3.2.3 イベント処理(コールバックの登録による方法)   46 
  3.3 各種ウィジェットの使い方   47 
    3.3.1 ラベル:Label   47 
      3.3.1.1 リソースへのフォントの登録   49 
    3.3.2 ボタン:Button   49 
    3.3.3 テキスト入力:TextInput   49 
    3.3.4 チェックボックス:CheckBox   50 
    3.3.5 進捗バー:ProgressBar   50 
    3.3.6 スライダ:Slider   50 
    3.3.7 スイッチ:Switch   50 
    3.3.8 トグルボタン:ToggleButton   51 
    3.3.9 画像:Image   51 
      3.3.9.1 サンプルプログラム   52 
  3.4 Canvasグラフィックス   52 
    3.4.1 Graphicsクラス   53 
    3.4.2 サンプルプログラム   54 
    3.4.3 フレームバッファへの描画   56 
      3.4.3.1 ピクセル値の取り出し   58 
      3.4.3.2 イベントから得られる座標位置   58 
  3.5 スクロールビュー(ScrollView)   58 
    3.5.1 ウィジェットのサイズ設定   60 
  3.6 ウィンドウサイズを固定(リサイズを禁止)する設定   60 
  3.7 Kivy言語によるUIの構築   61 
    3.7.1 Kivy言語の基礎   61 
      3.7.1.1 サンプルプログラムを用いた説明   61 
      3.7.1.2 PythonプログラムとKvファイルの対応   64 
  3.8 時間によるイベント   64 
    3.8.1 時間イベントのスケジュール   64 
  3.9 GUI構築の形式   65 
    3.9.1 スクリーンの扱い: ScreenとScreenManager   65 
    3.9.2 アクションバー: ActionBar   67 
    3.9.3 タブパネル: TabbedPanel   69 
    3.9.4 スワイプ: Carousel   70 
4 実用的なアプリケーション開発に必要な事柄   72 
  4.1 日付と時間に関する処理   72 
    4.1.1 基本的な方法   72 
    4.1.2 timeモジュールの利用   73 
      4.1.2.1 時間の計測   74 
      4.1.2.2 プログラムの実行待ち   74 
  4.2 文字列検索と正規表現   74 
    4.2.1 パターンの検索   74 
      4.2.1.1 正規表現を用いた検索   76 
      4.2.1.2 正規表現を用いたパターンマッチ   77 
  4.3 マルチスレッドプログラミング   78 
  4.4 モジュールの作成による分割プログラミング   79 
    4.4.1 モジュール   80 
      4.4.1.1 単体のソースファイルとしてのモジュール   80 
    4.4.2 パッケージ(ディレクトリとして構成するモジュール)   81 
      4.4.2.1 モジュールの実行   82 
  4.5 ファイル内でのランダムアクセス   82 
    4.5.1 ファイルのアクセス位置の指定(ファイルのシーク)   82 
    4.5.2 サンプルプログラム   83 
  4.6 エラーと例外の処理   84 
5 TCP/IPによる通信   86 
  5.1 socketモジュール   86 
    5.1.1 ソケットの用意   86 
    5.1.2 送信と受信   87 
    5.1.3 サンプルプログラム   88 
  5.2 WWWコンテンツ解析   89 
    5.2.1 requestsモジュール   89 
    5.2.2 Beautiful Soupモジュール   91 
6 外部プログラムとの連携   94 
  6.1 外部プログラムを起動する方法   94 
    6.1.1 標準入出力の受け渡し   95 
      6.1.1.1 外部プログラムの標準入力のクローズ   97 
    6.1.2 非同期の入出力   98 
7 サウンドの入出力   100 
  7.1 基礎知識   100 
  7.2 WAV形式ファイルの入出力:waveモジュール   100 
    7.2.1 WAV形式ファイルのオープンとクローズ   100 
      7.2.1.1 WAV形式データの各種属性について   101 
    7.2.2 WAV形式ファイルからの読込み   101 
    7.2.3 サンプルプログラム   101 
    7.2.4 読み込んだフレームデータの扱い   102 
    7.2.5 WAV形式データを出力する例   103 
    7.2.6 サウンドのデータサイズに関する注意点   104 
  7.3 サウンドの入力と再生:PyAudioモジュール   104 
    7.3.1 ストリームを介したサウンド入出力   104 
    7.3.2 WAV形式サウンドファイルの再生   105 
    7.3.3 音声入力デバイスからの入力   107 
8 免責事項   111 
A Pythonに関する情報   112 
  A.1 Pythonのインターネットサイト   112 
  A.2 Pythonのインストール作業の例   112 
  A.3 PIPによるモジュール管理   112 
B Kivyに関する情報   114 
  B.1 Kivyのインストール作業の例   114 
  B.2 GUIデザインツール   114 
C 各種モジュールの紹介   115
—————————————————————————
 
 
—【モジュールブックの目次】————————————————
1 画像の入出力と処理   1 
  1.1 OpenCV   1 
    1.1.1 動画像の入力   2 
    1.1.2 ユーザインターフェース   2 
    1.1.3 フレームのファイルへの保存   3 
    1.1.4 静止画像の読込み   3 
    1.1.5 色の分解と合成   4 
    1.1.6 画像の類似性の検査   5 
      1.1.6.1 AKAZE特徴量の算出   5 
      1.1.6.2 特徴量データの照合   5 
      1.1.6.3 サンプルプログラム   6 
  1.2 Pillow   8 
    1.2.1 画像ファイルの読込みと保存   8 
    1.2.2 Imageオブジェクトの新規作成   9 
    1.2.3 画像閲覧   9 
    1.2.4 画像編集   10 
      1.2.4.1 画像の拡大と縮小   10 
      1.2.4.2 画像の部分の取り出し   10 
      1.2.4.3 画像の複製   10 
      1.2.4.4 画像の貼り付け   11 
      1.2.4.5 画像の回転   11 
    1.2.5 画像処理   11 
      1.2.5.1 色の分解と合成   11 
    1.2.6 描画   12 
2 GUIとマルチメディア   14 
  2.1 pygame   14 
    2.1.1 基礎事項   14 
      2.1.1.1 Surfaceオブジェクト   14 
      2.1.1.2 アプリケーションの実行ループ   14 
    2.1.2 描画機能   16 
      2.1.2.1 描画のサンプルプログラム   19 
      2.1.2.2 回転,拡縮のサンプルプログラム   20 
    2.1.3 キーボードとマウスのハンドリング   22 
    2.1.4 音声の再生   23 
3 科学技術系   25 
  3.1 数値計算と可視化のためのパッケージ:NumPy / matplotlib   25 
    3.1.1 配列オブジェクトの生成   25 
      3.1.1.1 多次元配列の生成   27 
    3.1.2 データ列に対する演算:1次元から1次元   27 
    3.1.3 データの可視化:基本   28 
      3.1.3.1 2次元のプロット   28 
    3.1.4 乱数の生成   31 
    3.1.5 データの可視化:ヒストグラム,散布図   32 
    3.1.6 データ列に対する演算:\(n\)次元から1次元   33 
    3.1.7 データの可視化:3次元プロット   34 
      3.1.7.1 ワイヤフレーム   34 
      3.1.7.2 面プロット(surface plot)   35 
    3.1.8 高速フーリエ変換(FFT)   36 
      3.1.8.1 時間領域から周波数領域への変換:フーリエ変換   37 
      3.1.8.2 周波数領域から時間領域への変換:フーリエ変逆換   37 
    3.1.9 データの可視化:棒グラフ,グラフのアスペクトについて   40 
      3.1.9.1 棒グラフのプロット   40 
      3.1.9.2 プロットのアスペクト比の指定   40 
    3.1.10 フーリエ変換を使用する際の注意   40 
    3.1.11 行列の計算   41 
      3.1.11.1 行列の和と積   41 
      3.1.11.2 単位行列,ゼロ行列,他   41 
      3.1.11.3 行列の要素の編集   41 
      3.1.11.4 行列式と逆行列   42 
      3.1.11.5 固有値と固有ベクトル   42 
      3.1.11.6 その他   43 
    3.1.12 入出力   44 
      3.1.12.1 配列オブジェクトのファイルI/O   44 
    3.1.13 行列の比較   46 
  3.2 SymPy   47 
    3.2.1 モジュールの読込みに関する注意   47 
    3.2.2 基礎事項   47 
    3.2.3 基本的な数式処理機能   49 
    3.2.4 解析学的処理   52 
      3.2.4.1 極限   52 
      3.2.4.2 導関数   52 
      3.2.4.3 原始関数   53 
      3.2.4.4 級数展開   54 
    3.2.5 各種方程式の求解   54 
    3.2.6 線形代数   56 
    3.2.7 数値近似   57 
    3.2.8 書式の変換出力   57 
      3.2.8.1 \rm \LaTeX    58 
4 セキュリティ関連   59 
  4.1 hashlib   59 
    4.1.1 基本的な使用方法   59 
5 免責事項   60 
—————————————————————————

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)