2010-09-01から1ヶ月間の記事一覧

初めてのPython(17章)

lambda式、map関数、リスト内包表記、ジェネレータについて lambda式 無名関数と呼ばれるように名前の無い関数を作成する。実行されると関数が作成され、作成された関数が式の戻り値になる。 作成された関数が自動的に同名の変数に代入されるのがdefステート…

初めてのPython(16章)

変数のスコープと関数の引数について 変数のスコープ Pythonの変数はすべていずれかの名前空間に属する、モジュール全体であったり、関数であったり。 プログラムで変数を利用すると以下のどちらかが行われる。 名前空間に新たな変数を作成する すでに名前空…

初めてのPython(15章)

4部は、3部でやったステートメントを組み合わせてひとまとまりの処理をさせる関数について。 関数についての基礎 Pythonではあらゆるものがオブジェクトなので、関数も定義すると関数オブジェクトが作成される。 作成された関数オブジェクトは定義した関数名…

初めてのPython(14章)

Pythonのドキュメントについて ドキュメントの種類と表示方法 ドキュメントは、コードの内容と一致させるように努める。 種類 内容 #を使ったコメント プログラムの中に組み込む docstring(__doc__) プログラムの中に組み込む、help関数などで中身を見れる …

初めてのPython(13章)

ループ処理のwhileステートメントとforステートメント whileステートメント Pythonのwhileではelseブロックを使うことが出来る。 このブロックはループが終了する時に実行される。(条件判定式がfalseと評価された時に実行される) breakでループを抜けた場合…

初めてのPython(11章)

代入、出力を行うステートメント 代入ステートメント 『=』の左側(代入先)に「変数」または「オブジェクトの構成要素」、右側(代入対象)に「オブジェクト」を書くことで 代入対象に向かうリファレンスを代入先に作成することが出来る。代入には、 基本形 シ…

初めてのPython(10章)

2部ではビルドインオブジェクトのことをやり、3部ではステートメントについて Pythonプログラムの構造 4章でもやってたけど、忘れてるので覚えるためにも。 3部でやるステートメントの並べ方でプログラムのロジックが決まる。 プログラムはモジュールから…

初めてのPython(12章)

条件分岐のifステートメント 構文、多分岐 if ~ elif ~ elseを使う。else ifじゃないので注意が必要。 if <条件1>: 処理1 elif <条件2>: 処理2 else: 処理3多分岐(switch)に該当するステートメントは存在しないので、elifをいっぱい並べて実現。 条件判定が…

初めてのPython(9章後半)

ビルドインオブジェクトの分類 型 カテゴリ 変更性 数値 数値 immutable 文字列 シーケンス immutable リスト シーケンス mutable ディクショナリ 写像 mutable タプル シーケンス immutable ファイル エクステンション immutable 集合 集合 immutable リフ…

初めてのPython(9章前半)

タプルは『オブジェクトの集合』で、あらゆるオブジェクトにネスト出来る。 ファイルはコンピュータ上のファイルへのインタフェース。タプルとは? immutableなシーケンスの一種 タプルを対象にした変更処理は出来ない 変更が必要な時は新しいオブジェクトを…

初めてのPython(7章)

文字列は、immutableなシーケンスの一種文字列の種類は シングル or ダブルクォート トリプルクォート raw文字列 unicode文字列 文字列を整形する方法は 文字列の連結 文字列フォーマット 文字列オブジェクトでよく使うメソッド 置換(replace) 分割(split) …

初めてのPython(8章)

リストとディクショナリは『オブジェクトの集合』で、あらゆるオブジェクトを無限にネスト出来る。リストとは? mutableなシーケンスの一種 処理結果はオブジェクト自身を変更する(返り値として新しいオブジェクトは出来ない) 例外的に連結操作の場合は新し…

初めてのPython(6章)

Pythonプログラミングにおいて重要なことに「型付けがダイナミック」ということがある。この特性のおかげで 宣言なしで変数を使える 型の違うオブジェクトを同じ変数に代入できる ダイナミックな型付けは以下のようにして実現される 変数はオブジェクトへの…

初めてのPython(5章)

オブジェクトの操作には式を使う。 式はオブジェクトと演算子から構成され、オブジェクト毎に使える演算子が決まっていて、同じ演算子でもオブジェクトが違えば意味が異なる(ポリモーフィズム)。 これは、オブジェクト毎に定義が異なっているからで、オーバ…

初めてのPython(4章)

Pythonプログラムの構造は プログラムはモジュールから構成される モジュールはステートメントから構成される ステートメントは式から構成される 式により、オブジェクトは生成・処理される Pythonプログラムにおける演算の対象は全てオブジェクト その種類…

初めてのPython(2章)

Pythonの実行モデルは以下のようになっている。 インタプリタでソースコードをバイトコードに変換 バイトコードをVMで実行 上のモデルはCPython(ANSI Cによる実装)のもの。 Pythonにはその他にもバリエーションがある(*1)。 Jython(Javaによる実装) IronPyth…

初めてのPython(3章)

Pythonプログラムの実行方法は大きくは2つ 1行ずつ手入力 対話型プロンプトを使う プログラムを書いたファイルを使う コマンドラインからインタプリタに渡す 対話型プロンプトでインポート ファイルアイコンをクリック インポートの方法は import モジュール…

初めてのPython(1章)

RedHat系ディストリビューションのツールでよく使わわれているPythonを勉強する。 AnacondaとかYumとか普段使っている物がどんなものか理解しておきたいから。 Pythonの特徴 コードが読みやすい ライブラリが豊富 プラットフォーム間でコード修正不要 こうい…

make 改訂版(6章 続き, 7章)

昨日の強制リコンパイル時に延々とmakefileを作り直すやつを、もう少し調べてみよう。make には'-n' っていうオプションがあるみたいで、 実際にコンパイルはしないけど、どういうコマンドを実行しようとしているのかが表示される。 [kobakoba0723@fedora13-…

make 改訂版(5章) 続きの続き (6章)

ヘッダファイルで定義を変更した時に、オブジェクトをリコンパイルできるようにしておきたい こういう場合は、オブジェクトファイルの依存関係にヘッダファイルを追加すれば問題は解決する。でも、間違ったり漏れたりすることもあるので、自動的に作ってもら…

make 改訂版(5章) 続き

シンボルの定義/未定義で実行ファイルの動作を切り替えられるのはとても便利。 でも、コンパイル時の指定を忘れていたり、記憶違いをしていたりすると、 思いもよらない動きをする実行ファイルが作成されてしまう。 (ファイルの編集でなくシンボル定義で切り…

make 改訂版(5章)

再帰的なmake 複数のディレクトリにまたがったコンパイルをする時に make ってやると下位ディレクトリまで含めて依存関係を解消できる [kobakoba0723@fedora13-intel64 recursive]$ make cc -c -o main.o main.c cd hoge; \ make all make[1]: ディレクトリ …

make 改訂版(4章)

コマンド行の注意点 各コマンド行は独立したシェルで実行される 以下のようなことをすると、rmコマンドで悲しい結果を生み出してしまう。 clean: cd hoge rm *.shcd, rm ともそれぞれ新しいシェルを起動し実行されてしまう。 そのため、hogeと同一階層にある…