Pythonチュートリアル一人読書会 vol.3

0 コメント

■第5章 データ構造

リストについて
リストオブジェクトが持ってるメソッドの紹介
リストを使って簡単にStackとQueueを実現できるよ。
Stack
→append()で要素を追加して引数なしのpop()で要素を取り出せばおk
Queue
→append()で要素を追加して引数'0'のpop(0)で要素を取り出せばおk
リストの内包表記
filter(func, seq)
seq内のすべての要素に対してfuncを実行し、
実行した結果がtrueとなるような値のリストを返却します。
map(func, seq)
seq内のすべての要素に対してfuncを実行し、
実行した結果の戻り値からなるリストを返却する
reduce(func, seq)
引数を二つとるfuncに対して、seqの先頭から処理を実行していく。
最初にseqの先頭の二つの要素に対してfuncを実行し、
以降は実行した結果と、次の要素を用いてfuncを実行する。
ex)1から10までの総和を求める場合
def add(x,y): return x+y
[1,2,3,4,5,6,7,8,9,10]
1+2=3→3+3=6→6+4=10→10+5=15...45+10=55
seqの要素がひとつしかない場合はその値自体が返却される。
空の場合例外投げます
a**2でaの二乗になる
→strには使えない
タプルとシーケンス
タプルは常に丸括弧で囲われるよ
タプルは変更不可だよ
(スライスと連結を使えば変更みたいなことはできるけど)
参考:
集合やべぇ
diff取れるとかすげぇ
辞書型
keyにタプルを使えるよ
keyの存在を調べるにはhas_key()
すべてのkeyのリストを取得するならkeys()
iteritems()
→キーとそれに対応する値を同時に取り出せる
enumerate()
→要素のインデクスと要素を同時に取り出せる
比較演算子の優先順位
"and", "or", "not" などは比較演算子より優先順位が低い
式の内部で代入は行えませんよ
→=と==のミスタイプを防止するため
str1,str2,str3 = '','Trondheim','Hammer Dance'
not_null = str1 or str2 or str3
#この式がなにを評価しているかがわからにぃ
#実行すると'Trondheim'が出力されるということは
#not nullになる一番最初の値を代入してるってこと?

Pythonチュートリアル一人読書会 vol.2

0 コメント

ある程度読み進めたので投下。
・・・と思ったけど、ちょこちょこまとめてたのを一気に投下したら
結構長かったので、分割します。

■第4章 その他の制御フローツール
ifやforの使い方
else if -> elif
if...elifは他の言語のswitchやcaseの代替になるよ
forは対象の文字列かリストのすべての要素に対して、
任意の処理を行うよ。
Javaのように対象のリスト内の範囲を指定して
反復処理実行したりはできないよ(たぶん)
また、for実行中にforの対象のリスト(文字列)を
書き換えるような操作は安全じゃないよ。
forの対象のリストを書き換えるなら、
forの対象をコピーして、コピーしたほうをグルグルまわしながら、
処理対象に処理を加えるべきだよ
range()関数
渡された引数でintの配列を生成するよ。
・引数ひとつの場合
range(10) → [0,1,2,3,4,5,6,7,8,9]
開始値:0
インクリメント値:1
最終値:引数-1
引数は要素の数を表す
・引数ふたつの場合
range(5, 10) → [5,6,7,8,9]
・引数みっつの場合
range(5,10,2) → [5,7,9]
raw_inputってなによ??
raw_input関数はキー入力を取得します。
input関数では数値として変換されましたが、
raw_inputはそのまま文字列として返されます。
引数はプロンプトとして表示されます。
可変引数のお話
関数側であらかじめ複数の引数を定義しておけば、
関数実行時には、それより少ない数の引数で実行できるよ
キーワード引数のお話
キーワード引数でエラーが起きる場合
・必要な引数がない
・キーワード引数の後に非キーワード引数がある
・引数に対して値が重複してる
・道のキーワードを使用している
どうでもいいけど
print '-'*40
に感動した
引数リストのアンパック
→リストに入ってる値を、関数の引数に適用する?
ラムダ形式?匿名関数とかちょっとよくわかんないです。
→あとでちゃんと調べましょう
関数に関するドキュメントの記述ルールについて

過去記事

TortoiseSVN 日本語化 できない

2 コメント

仕事場のPCのTortoiseSVNを日本語化しようとしたら、
ちょこっとハマったので軌跡などをメモ。

重要なポイントは二つ。

・TortoiseSVN本体と言語パックのバージョンに
  ズレがあると、日本語化は上手くいかない。
   
・TortoiseSVNは「プログラムの追加と削除」から
  削除しても、ちゃんと削除されない。
  アンインストーラーがないんで、そうするしかないんですが、
  コレで削除してもインストールフォルダが残ったままで、
  アンインストール前のデータが残っちゃったりしてます。
   
この二つのポイントを抑えればもう2度とハマる事もないはず。

以下にハマった軌跡を箇条書きしておきます。

・仕事場のTortoiseSVN(ver1.6.7)を日本語化する必要が出てきたぞ。

・確か言語パック自体がインストーラだったから楽勝でしょ。

・最初に落としてきた言語パックのバージョンは1.6.10

・なにもしらずにそのままインストール

・Generalのlanguageに日本語の選択肢がでてこねーじゃねーか!

・バージョン齟齬問題について知る。

・とりあえず1.6.7の言語パックを落としてくる。

・上書きインストール出来ないかな・・・?

・ダメでした。

・TortoiseSVNアンインストールしたらぁぁぁぁ!

・アンインスコ→PC再起動→インスコ→言語パックインスコ

・ダメでした。

・なんか・・・オカシくね?

・TortoiseSVNアンインスコ後にProguram Filesのフォルダ内を見てみる。

・TortoiseSVNフォルダが見事に残ってました。

・しかもjaフォルダが綺麗に残ってました。

・ソレらを消して、再インスコしてみる。

・やっと無事に日本語化できましたとさ。ちゃんちゃん。

あ。ちなみに環境は
・Windows XP Professional SP3 32bit
・TortoiseSVN 1.6.7
でした。

オライリー本が読みたいじゃない? ~iBooksの洋書で英和辞書を使う方法~

0 コメント

先週こんなエントリがホッテントリになってた。

たった600円でオライリー本をiPadやKindleで読む。すてき。

コレはスゴイっすね。
そしてこのエントリを受けてdankogai氏が
Perlで自動化スクリプトを組んでました。

perl - O'ReillyのiPhoneアプリ本からepubをぶっこぬく

自分も一応技術者の端くれなので、
あのバカ高いオライリー本がこんなリーズナブルな値段で
読めるようになっちゃうなんて!って心が踊ったりもしました。
んで、実際にHadoop本をダウンロードして、ePub形式にしてみました。
(Perlをインスコするのがめんどくさくてdankogai氏のスクリプトは試してませんが)
いざiPhoneに入れて読むぞー!と意気込んでみてはみたものの・・・

いや・・・わかってたんですけどね・・・

わかってたんですけど、やっぱり英語は辛かったっす・・・
1ページでくじけました。

その後色々調べてみたところ、iBooksは辞書機能があることを知り、
その場で単語が調べられるなら、イケンジャネー?と思ったのですが、
上記の方法でePubにしたHadoop本はなぜか単語を選択しても、
辞書機能を発揮しない。英英辞書すらも。

色々調べてみたところ、Jailbreakすると英和辞書が使えるよ的な
ブログを発見したのですが、かといってそのためだけにJailbreakはしたくない。

しかしコチラのブログを見ると、どうやらePubファイルの
言語設定を「Japanese」にすると、英和辞書が使えるようなことが書いてある。

というわけで早速試してみました。
今回使ったアプリは「Sigil」
基本的な使い方はコチラを参照してください。


今回やった手順は「Sigil」を立ち上げて、
対象のePubファイルを開き、Tools->Meta Editor を選択し、
LanguageをJapaneseにしてあげただけです。

言語情報を変更したら、上書き保存し、
保存したファイルをiTunesにドラッグアンドドロップし、
iPhoneと同期を取るだけ。

すると、どうでしょう?見事に英和辞書が開けるようになりました!
(ちなみに言語をEnglishにすると英英辞書が開かれます)

これでもうちょっと戦えそうですね!
もとい、もうちょっと戦ってみます!!

大量の洋書を英和辞書対応するのにはちと辛いかもしれませんが、
オライリーの本が読みたいけど高くて手が出なかったんだ!
というiPhone、iPadユーザーは是非試してみてください。

(※今回iPadでは実施してないので、iPadでの動作保証はできませんが)

Pythonチュートリアル一人読書会 vol.1

0 コメント

以前のPythonインストール記事でPythonチュートリアル
を読みながらPythonを勉強していると言いました。
ただ、チュートリアルを読んで手を動かしながら、
Pythonタノシーウヒョーって言ってるのもいいんですが、
折角ブログを持ってるんだから、自分なりに読んだ部分を
まとめておこうかなと思ったので、今日からまとめ始めます。
タイトルにvol.1とある通り続きます。
いや。続かせたいです。
と言っても一人でやってるので、
区切りをつけるのが、その時その時で違うので、
各号のボリュームは大分変わるかもしれません。
Pythonチュートリアルは以下にあります
HTML版
PDF版
というわけで以下からまとめです。

【第1章】やる気を高めよう
    Pythonはインタプリタだから開発が楽だよというお話。
    既存言語を引き合いに出してPythonの良さを伝えてます。


【第2章】Pythonインタプリタを使う

    コマンドプロンプトでPythonを起動するところから、
    REPLでの実行方法、ファイルからの実行方法、
    ソースの文字コードについてなどをザクっと述べてます。
    パス通すところを記述するなら、公式のダウンロードURL
    も一緒に書いておいてくれれば嬉しいのに・・・

   
【第3章】形式ばらないPythonの紹介
    コメントの書き方や、REPLでPythonを電卓として使用してみたり、
    文字列の扱いについてのお話してます。
    以下感動?したこと
    ・Pythonは最後の計算結果を 変数"_" に格納してます。
    ・Pythonは文字列操作が楽ちん
    ・リストの操作も楽ちん
    ・リストに要素を追加するときは"+"も使えるけどappend使おうね
    ・文字列の項のrawモードはちょっとよくわからんかった
    ・複素数はもっとよくわからんかった(高校の時やったはずなのにね
   

とりあえず今回は3章まで。
またちょっぴり読み進んだらまとめます。

オレが欲しいiPadアプリネタ~ぼくがかんがえたさいきょうのあいぱっどあぷり

0 コメント

こんにちは。最近iPad欲しいモードになって困ってるmasashoujiです。
iPad欲しいなーと思いながら仕事をしてたところ、
ふとこんなアプリあったら便利なんじゃね?
ってかiPadで仕事をしようと考えてる人が結構いるんだから、
結構需要あるんじゃね?とか思ったネタが思い浮かんだので晒します。
オレの周りでiPadアプリが作れる環境がない訳じゃないんですが、
状況を鑑みるに、どう考えてもリリースされない or リリースされる
としてもいつになることやら状態になるのが目に見えてるので
とりあえず草案だけでもネットの海に晒しておけば、
誰かが作ってくれないかなーなんて淡すぎる期待を持ってます。

もし、オレが晒したアイデアで大儲けしちゃった日には
iPadをプレゼントしてくれてもいいですよ?

というわけで以下がオレが考えたiPadアプリネタ

■タイトル
    一応いくつか考えてみた
    ・TextEditor
    ・Textit
    ・Keyborder
    ・KeyPuncher
    けどまぁオレが作るわけじゃないので、
    どうでもいいっちゃどうでもいいか。
   
■コンセプト
    外部キーボード(Bluetooth)を前提とした
    テキストエディタアプリ
    今のところ、想定としてはリュウドのキーボードや、
    Appleの純正Bluetoothキーボードなどを考えてる
   
■なにがしたいか?
    キーボード入力のみでテキストファイルの
    作成・編集を完結させたい。
    そのために外部キーボードに標準で備え付けられているであろう
    Ctrl,Alt,Shiftを用いて既存のPCのテキストエディタアプリで
    実現できるキーボード操作をiPadで実現させられるようにしたい。
   
    今のところ実装したいキー操作
    Ctrl  + s         →    保存
    Shift + 矢印    →    範囲選択
    Ctrl  + c         →    コピー
    Ctrl  + x         →    切り取り
    Ctrl  + v         →    貼り付け
    Ctrl  + f          →    現在編集中のテキストファイル内検索
    Ctrl  + r          →    置換
    Shift + Enter    →    上改行
   
    変換候補を矢印 or スペースキーでカーソル移動
   
   
■保存形式
    基本は.txtがいいです。
    こんなの実装してほしいなーと思ってるのは
    Ctrl + s            →    ローカルに.txtで保存
    Ctrl + d            →    DropBoxに.txtで保存   
        →DropBoxアカウントは別途設定できるように。
    Ctrl + e            →    Evernoteに送信。
        →Evernoteアカウントは別途設定できるように。
        →送信時にタグ設定や送信先ノートを選べるとなおベター
       
    ホントは保存時に拡張子を選択できるようにしてほしい。
    というか、普通のエディタのように「hoge.java」とかで
    保存したらそのままの拡張子で保存してほしい。
   
    そうすりゃ、htmlやちょっとしたプログラムコード
    なんかも書けるようになる・・・はず
   
■欲しいオマケ機能
    ・シンタックスハイライト機能
        →あるとすばらしいと思う。
   
    ・コード補完機能
        →あるといいなぁとは思うけど、
        ガッツリとコーディングできるわけでもないだろうし、
        どの言語をサポートすんだって話もあるし、
        いらないっちゃいらない
       
   
ちなみにもしホントに作ってもいいけど、
こんなテキストベースじゃわからん。
直接会って仕様を教えやがれ!
という人がいれば、土日祝日・平日夜でよければ
時間空けます。
メールかtwitterでご連絡ください。

お便りお待ちしてます!

メアド
guyst.326アットマークgmail.com

twitter
@masashouji

Windows7にPython2.6を入れたよ!

0 コメント

2.7が出たっていうのにね!
しかも2.7のリリースニュースを見ると、
2系のファイナルメジャーバージョンアップみたいだから
今後はじめる人は3系を勉強したほうがいいのかも?

というわけでWindows7 Home Premium(64bit)に
Python2.6を入れました。
ダウンロードするファイルさえ間違えなければ、
next連打で普通にインストールできるから、
記事にするまでもないって話もあるけど、
SSとったので一応晒しときます。

ダウンロードするファイルはここから、
自分のOSにあったファイルを選べばおk
自分の場合は64bit版だったので、
Python 2.6 Windows X86-64 installerを選択しました。
(2.7がリリースされたのでリンク先はPython2.7になってます)

あとはダウンロードしたインストーラをダブルクリックして、
標識どおり進むだけ。






































































ちなみに今はPythonチュートリアルを読みながら
イチから勉強ちう。(PDF版もあるよ!)


20100708:修正
表現がアレだったので修正と、リリースニュースのリンク先追記

やりたい事が溢れてきたので整理

0 コメント

さながら WannaDoリスト

■今やってること
    Pythonチュートリアルを読みながら
    ハンズオン形式でPythonの勉強
    Pythonの文字列操作らくちんで楽しい
   
■やりたい事
    ・Scalaチュートリアルなるものを見つけたので、
        それを参考にもっかい勉強
   
    ・Liftを使ってサンプルプログラム作成
        とりあえず触りたい
   
    ・今更ながらJavaDBの調査。
        Java単体でアプリ創りたいなぁ
   
    ・クレカCSV管理アプリが創りたい。
        出来ればJava単体といきたい所だけど、
        UIが大変な事になりそうだからなぁ・・・
   
    ・Evernoteにどんどん溜まっていくドキュメントの消化
        未読タグ的なのを作らないといかんかなぁ・・・
   
    ・Djangoを使ってサンプルプログラムを作成
   
    ・Windows7にEclipse3.6(Helios)の導入
   
    ・UbuntuにEclipse3.6(Helios)の導入

    ・ScalaをダシにNetBeans初挑戦
   
   
こんなとこかなぁ。
気になることはもっと一杯あるけど、
それはまた今度まとめよう。