勉強会
昨日は勉強会でした。
今回は、Python チュートリアルの↓。
5. データ構造
o 5.1 リスト型についてもう少し
+ 5.1.1 リストをスタックとして使う
+ 5.1.2 リストをキューとして使う
+ 5.1.3 実用的なプログラミングツール
+ 5.1.4 リストの内包表記
o 5.2 del 文
o 5.3 タプルとシーケンス
o 5.4 集合型
o 5.5 辞書
o 5.6 ループのテクニック
o 5.7 条件についてもう少し
o 5.8 シーケンスとその他の型の比較
目次より
■データ構造
3つのFunction
1.fileter
2.map
例の呼出で配列の個数が違うものだったらどうなる?
⇒ダメ。足りないものは"None"という値が入ってくる
3.reduce
■リストの内包標記
一瞬見るとコメントだと思う
⇒変数宣言が後に来るため、Javaとの評価の仕方が違う
■タプルとシーケンス
タプル:不変のリスト
アンパック:関数の戻り値がタプルだったら、複数受取れる
Set:Javaと似ているけど、演澤部分が違う
■ループテクニック
reverseは便利。なぜ他の言語にないのか?
sortは配列をコピーして返してくれるのが便利。
SunもPythonへの取り組みを始めたみたいです。
Pythonに向けたSunの真剣な取り組み
勉強会
今日からPythonです。
教材は、まずは基本からということで、Python チュートリアル。
id:c9katayamaさん、提供ありがとうございます。
今日はこの中から以下の内容をやりました。
1. Python への意欲を高める
o 1.1 ここからどこへ
2. Python インタプリタを使う
o 2.1 インタプリタを起動する
+ 2.1.1 引数の受け渡し
+ 2.1.2 対話モード
o 2.2 インタプリタとその環境
+ 2.2.1 エラー処理
+ 2.2.2 実行可能な Python スクリプト
+ 2.2.3 ソースコードの文字コード方式 (encoding)
+ 2.2.4 対話モード用の起動時実行ファイル
3. 形式ばらない Python の紹介
o 3.1 Python を電卓として使う
+ 3.1.1 数
+ 3.1.2 文字列
+ 3.1.3 Unicode 文字列
+ 3.1.4 リスト
o 3.2 プログラミングへの第一歩
4. その他の制御フローツール
o 4.1 if 文
o 4.2 for 文
o 4.3 range() 関数
o 4.4 break 文と continue 文と ループの else 節
o 4.5 pass 文
o 4.6 関数を定義する
o 4.7 関数定義についてもう少し
+ 4.7.1 デフォルトの引数値
+ 4.7.2 キーワード引数
+ 4.7.3 任意引数リスト
+ 4.7.4 引数リストのアンパック
+ 4.7.5 ラムダ形式
+ 4.7.6 ドキュメンテーション文字列
目次より
■文字列操作
・raw指定
文字列全体にエスケープが適用される
hello =r"This is a rather long string contraining \n" print hello ⇒ This is a rather long string contraining \n
・"""指定
HTMLのpreタグっぽい使い方
⇒\nはキチンと改行される
・文字連結
word = "Help"
print word * 5 ⇒HelpHelpHelpHelpHelpHelp
・文字列中の文字の抽出
word = "HelpA" print word[4] ⇒ A print word[0:2] ⇒ He print word[2:4] ⇒ lp
・文字列はimmutableで、変更しようとするとエラーとなる
・文字の抽出は文字位置指定だとエラーにあるが、範囲指定だとエラーにならない。
■配列
・配列もかけ算で増やせる
a =['spam','eggs',100,1234] print 3*a[:3] ⇒ ['spam','eggs',100,'spam','eggs',100,'spam','eggs',100]
・配列に別の配列をネストすると参照が入る(ポインタ型)
ただし、値を入れるとコピーが入る
⇒Javaでこれをやると循環参照
■式
一行で複数代入可能
a,b = 0,1
■制御系
・if文
"elif"とした気持ちはわかる気がする
・for文
for文を使うためには、一回配列形式にするといい。
⇒Iteratorのイメージ
■関数
・メソッドのオーバーロードができない
・キーワード引数はいままで見た言語の中にはない
**keywordで受けるやつはやりすぎな感じがする。
⇒まぁ、*argsくらいなら使うかもしれないが。
・ラムダ形式
FunctionをNewする感じ
結構入りやすい言語でした。
チュートリアルによるとUnitTestライブラリとかも
あるみたいですし、楽しめそうです。
勉強会
今回は場所を変えての勉強会でした。
ミューザいいっすね。
予約の競争率は高いですが。。。
Adobe Flex 2プロフェッショナルガイド Windows & Macintosh対応
- 作者: クジラ飛行机
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 68回
- この商品を含むブログ (32件) を見る
■XMLListへの便利なアクセス方法
menuitemが格納されているXMLListのインスタンスlist内の
idがcopy_itemだったら非活性にするという処理。
list.(@id=="copy_item").@enabled = false;
Javaでもこんな感じでアクセスできればいいのに。
無駄なfor文がなくなるし。
■Drag&Dropの例
DragManagerの使い方は応用編にある。
これが無いとD&Dは正しく動かない。
■Validator
EmailValidatorの例
<mx:TextInput x="10" y="10" id="mail_txt" width="372" height="138"/> <mx:EmailValidator source="{mail_txt}" property="text"/>
- Validateが実行されるタイミングを指定するには、triggerEvent属性を変えればよい。
デフォルトはFlexEvent.VALUE_COMMIT。 - エラーメッセージはカーソルを合わせないと表示されない
- property属性は監視対象のオブジェクト属性を指定する
Validatorは自作した方がしっくりくる。
■CSS
勉強会
今日は勉強会でした。
最近は参加者とのレベルの差を感じて少し凹んでます。
頑張らねば。。。
Adobe Flex 2プロフェッショナルガイド Windows & Macintosh対応
- 作者: クジラ飛行机
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 68回
- この商品を含むブログ (32件) を見る
■画像の読み込み
サンプルでは、Loaderを使用しているが、SWFLoaderでOK。
SDWLoaderの内部ではLoaderを使用している。
このサンプルは生コーディングな感じ。
SWFLoaderはextends UIComponentなので、
そのまま表示オブジェクトとして使える。
画像を指定する際のContextPathはSWFの場所。
相対パスはそこから指定する。
プロジェクトの外は指定できない??
■画面のハードコピー
BitmapDataを使用すると画面のHCを簡単に取れる。
サーバーに送る場合は、binaryにして送信する。
BitmapDataのgetPixelを呼ぶとBatesArrayが取れる。
こんな感じ↓
var image:BitmapData = new BitmapData(200,200,true,null); //中略 var data:ByteArray = image.getPixels(new Rectangle(200,200));
■Buttonオブジェクト
ButtonクラスのbuttonMode=trueにすると人差し指になる
⇒これはデフォルトtrueでもいい
勉強会
今日久しぶりの勉強会でした。
前回から半年くらい(?)空いてしまいましたね。
今回から書籍が変わりました。
Adobe Flex 2プロフェッショナルガイド Windows & Macintosh対応
- 作者: クジラ飛行机
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 68回
- この商品を含むブログ (32件) を見る
スルーしました。
CHAPTER-5からスタート。
ポイントとなったところ、考察したところを残します。
■doubleClickイベントを拾う場合
doubleClickイベントを拾う場合は、以下の属性指定が必要
<mx:Image id="aaa" doubleClickEnabled="true" doubleClick="handler()"/>
「doubleClickEnabled="true"」をつけないと拾えない。
■FunctionをつくるFunction
private function moveNext(next_txt:TextInput):Function{ return function(e:KeyboardEvent){ if(e.keyCode!=Keyboard.ENTER) return; next_txt.setFocus(); }; }
こんな感じでfunction定義をするとnext_txtの値が
埋め込まれたfunctionがコンパイル時に複数できあがる。
■Applicationの上位オブジェクト
Applicationの上位にはstageという変数でアクセスできる
上位オブジェクトがある。
この変数が作られるタイミングはapplicationComplete後。
ちなみにinitialize⇒creationComplete⇒applicationCompleteという
順番でCallされる。
■動画や画像ファイルの静的ロード
[Embed(source='turtle.swf')]//ファイル指定 private var TurtleClass:Class;//それがbinaryでクラス定義 private var turtle_spl:Sprite = new TurtleClass();//instance生成
こんな感じで定義をするとコンパイル時に取り込まれる。
その分サイズも大きくなる
大枠はこんな感じですかね。
あとはクロスドメインポリシーファイルに関する仕様変更と
SharedObjectの使いどころですね。
【次回以降】
この本は後2・3回で終わってしまいそうですね。
なんで、次の書籍の候補を次回までに探しましょうか。
アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き
アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き
- 作者: Esther Derby,Diana Larsen,角征典
- 出版社/メーカー: オーム社
- 発売日: 2007/09/01
- メディア: 単行本
- 購入: 10人 クリック: 1,282回
- この商品を含むブログ (117件) を見る
↓
アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き Esther Derby Diana Larsen著 – 読書による経験価値