Pythonのテキスト作りました

  • 370
    いいね
  • 2
    コメント

Pythonのテキスト作りました

---------------------
・テキスト本体 2017/07/17更新
 言及している主なモジュール:
 Kivy, socket, threading, requests, BeautifulSoup, subprocess, datetime, wave, PyAudio
・モジュールブック 2017/07/16更新
 言及しているモジュール:
 OpenCV, Pillow, NumPy, matplotlib, SymPy, hashlib
---------------------
 
Pythonを用いたゼミ活動の紹介をしています.
→Pythonを応用した活動の紹介
 
(2017/05/16)
学生に教えるためのPython(3.6)の入門テキストを作りました.
 
既に何かの言語を習得している人が迅速にPythonに慣れるための入門書というスタンスです.
 
GUIライブラリ「Kivy」を使ってアプリを作れるところまで一気に解説しています.(Kivyの入門)
それと,Webスクレイピング用にrequests, BeautifulSoup4の入門的解説もしています.
 
まだまだ完成度が低い状態ですが,教えならがテキストも修正・アップデートしてゆきます.
無料で公開しますので,ご意見いただけたら嬉しいです.

テキスト本体
紹介ページ
 
「これ使いたい」という方は大歓迎です.
ご意見をいただきながら完成度を高めて行きたいです.
 
今後は各種のモジュールの使い方もまとめて別の冊子にしようと考えています.
 
“Python3入門
  KivyによるGUIアプリケーション開発,
  サウンド入出力,
  ウェブスクレイピング”
 
--------------
【補足】(2017/05/24)
 公開日は7月にしていますが,早速「サウンドの使い方を教えてほしい」との声が来ていまして,内容追加しました.(wave, PyAudio)
その他にも学生からの相談を受けて,若干の追加や修正もしています.
 
「モジュールブック」作りはじめました.OpenCVモジュールの入門みたいな部分だけ書きました.(画像認識モジュール)
モジュールブック
 
モジュールに関しては公開されているものの種類が多すぎるので,私のゼミで使用方法を発掘したものを中心に書いてゆくことになると思います.
 
--------------
【補足】(2017/05/29)
 モジュールブックにPillowの導入解説を入れました.
モジュールブック
(画像処理モジュール)
Photoshpみたいなことが可能になります.
 
--------------
【補足】(2017/05/30)
 Kivyのフレームバッファ(FBO)の扱いについてご相談いただきましたので,解説を追加しました.
 普通のCanvas描画ではピクセル値を取り出すのが困難なようです.それでFBOを使用することになるわけです.
テキスト本体
 
--------------
【補足】(2017/06/03)
 Kivyについて:ActionBar(Kivy流のメニュー), ScreenManager, Carousel, TabbedPanel の基本的な使い方の解説を追加しました.(学生からの要望に応えました)
 
あと,Kivyで時間イベント(タイマー)のハンドリングをするのに必要なClockモジュールについても基礎解説を追加しました.
GUIアプリで,タイミングで起動する処理の繰り返しに for や while を使おうとする学生がいました.そうではなくて,タイマーを仕掛けるのです.
 
これで,一通りアプリ作りの指導ができるかと…
 
そろそろ,ほころびが気になりますが,時間をかけてつぶしていきます.
テキスト本体
まずいところありましたら,ご連絡いただけますと助かります.すぐに修正・アップロードさせていただきます. 
--------------
【補足-2】(2017/06/03)
 Kivyでアプリ作る際,KV言語を使うと,ちょっと初心者にはデバッグがしんどい感じですね…
 
Pythonプログラムで間違いやるとエラーメッセージが分かりやすいですが,KVの中で起こした間違いの検出がなかなかやりにくいですね…
要するに,「KV言語の何行目に○○○なエラーがある」というメッセージが出ないわけです.
 
熟達者にとっては開発効率の面でKV言語はありがたいでしょうが,初心者にとってKV言語は勉強の能率を落としてしまう可能性が大きいですね…
 
Kivyは慣れるまでは,普通にPythonでAPI書き並べた方が良いと思いますが,みなさんはどのように思われますでしょうか…

--------------
【補足】(2017/06/06)
 モジュールブックにSymPyの導入解説を入れました.
モジュールブック
(数式処理モジュール)
MathematicaやMaximaみたいなことが可能になります.
 
「何でSymPy?」と思われるかもしれませんが,うちのゼミのテーマで「使いやすい数式処理システムのユーザインターフェースの提案」みたいなことをやってまして,そういう事情です.
 
SymPyはすごいパッケージでして,グラフィカルな機能を除けば商用システムと張り合うレベルですね(おそらく)
マニュアルもPDFで1,700ページ以上ありますし…
 
数式電卓として使うにはフリーのMaximaか,お金がある人はMathematicaが良いと思います.手軽に3次元プロットまでできますし.(無理してSymPyを素のまま数式電卓にするのは,私個人としてはあまりおすすめではありません.面倒くさいと思いますよ…)
 
SymPyは数式処理機能を組み込んだアプリ(教育系ソフトとか,思考サポートアプリとか)を開発する場合に威力を発揮すると思います.
 
--------------
【補足】(2017/06/08)
 Kivyドキュメントサイトの日本語翻訳が進んでいるようです.
Kivyドキュメントサイト
 
ありがたいことです.
詳細なリファレンスが必要なときに役立ちます.
--------------
【補足-2】(2017/06/08)
 Kivyのテキスト入力がWindows/Macの日本語入力メソッドに対応していないと学生から「落胆の声」が出ました.でも,まだこれからです.
 
入力中の表示が崩れたりしますが,一応はなんとか日本語入力できますね…
Kivyはまさに発展途上.「最も将来性が高くて,これから注目のUIですよ!」と学生を説得しています.個人的な期待も込めていますが,しばらくKivyと付き合って行きます.

その内,アップデートで大幅に改善されることは間違いないと思います.
 
--------------
【補足】(2017/06/10)
 KivyのKV言語,初心者向けに情報整理しないといけないですね.
学生の学び方と,相談の仕方を見ていて思いました.
 
次のテーマですね.ちょっと時間いただいて,またテキスト修正・追加します…
 
--------------
【補足】(2017/06/18)
 Pythonで高速に数値演算するには numpy が定番ですね.ただ研究課題のあらゆる局面で numpy が万能というわけでもなく,任意に立てた微分方程式の数値解を得るにはやっぱり個別にシミュレーションプログラム書くことになります.
 
 numpy に関しては,その内モジュールブックに入門解説を記述しようと思いますが,うちのゼミのテーマに早く対応しないといけないので,しばらくはC言語でシミュレーションコード書くことにします.
 
ということで,Cで書いたプログラム(実行可能ファイル)をPythonから呼び出して,スピードを要する部分だけCに投げるという方策を取ります.
といいますか,多くのモジュールがそんな風に外部プログラム呼び出しているようですね.
 
というわけで,subprocess, asyncio モジュールの使い方を早急にまとめてテキスト本体に組み込むつもりです.
 
--------------
【補足】(2017/06/25)
 subprocess モジュールを使用して外部のプログラムを起動する方法について加筆しました.
テキスト本体
複数の外部プログラムを起動して,それらと非同期にパイプI/Oする方法についても解説しています.
 
asyncio モジュールに関しては「初心者」「入門」の域を超えそうなので,このテキストとは別の形で解説コンテンツにしようと考えています.(若干方針変更)
 
あとは,numpy, matplotlib モジュールの入門解説をモジュールブックに載せると,しばらくゼミの教材として使えそうな感じです.
 
あと,乱数生成の方法を加筆しました.(ゲーム作成には欠かせません)
 
--------------
【補足】(2017/06/27)
 モジュールブックに numpy, matplotlib の記述をはじめました.
モジュールブック
 
これからはゼミの活動に伴って,モジュールブックの加筆が増えそうです.
 
--------------
【補足】(2017/07/02)
 「pandasモジュールの解説はしないのか?」と質問(リクエスト?)をいただきました.
 
 ちょっと待ってくださいね.私も体が1つしかないもので… ただ,気にはしていましたので夏休みくらいには着手するかもしれません.実際に私のゼミ活動でも必要になるでしょうから…(いつになるか確約なしですが)
 
pandas は統計解析に便利そうですね.
 
--------------
【補足】(2017/07/08)
 テキスト本体の索引がお粗末だったので少しテコ入れしました.
テキスト本体
 
--------------
【補足】(2017/07/10)
 テキスト本体をほんの少し加筆しました.(サブプロセスの部分)
あと,文字列の連結方法の解説を追加しました.(重要な方法なのに解説を逃していました)
テキスト本体
 
--------------
【補足】(2017/07/11)
 各テキストに「免責事項」加筆しました.
 
--------------
【補足】(2017/07/15)
 テキスト本体の「forを使ったリストの生成」の部分の加筆,それに文字と文字コード相互の変換について加筆しました.
テキスト本体
 
学生に使わせはじめると,次々と加筆箇所が出てきます.
 
--------------
【補足】(2017/07/16)
 モジュールブックにhashlibの導入解説を入れました.
モジュールブック
(暗号学的ハッシュ生成モジュール)
 パスワード文字列の秘匿化や,文書のデジタル署名作成に必要です.
 
--------------
【補足】(2017/07/17)
 テキスト本体に加筆.辞書型オブジェクトの解説部分に,辞書にキーが存在するかどうかを検査する方法を追記しました.あと,データ型の変換についても追記.
意外なくらい初歩的な事柄の解説が抜けていると実感.やっぱり実際にテキストを使い始めるとほころびが次々と見つかりますね.
テキスト本体