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

便利なキーワード引数他、関数定義

先日のエントリで書いていたcsvをjsonに変換するプログラムでもよく理解しないまま使っていたのですがPythonの関数にはキーワード引数というのがあり、とても便利です。 キーワード引数は呼び出し時に使うもので定義は普通に行います。 def test(x = 2, y = …

enumerate()がPython風

先日書いていたCSVをJSONに変換するプログラムでfor文を使う際に for i in range(len(LIST)) という書き方を多用していましたが、リストのインデックスを使って処理をしたい場合enumerate()を使うのがPythonらしい書き方のようです。 a = [0,1,2,3,4] for i,…

Index Errorを扱う その2

昨日のエントリの続きです。リストにおいて外側のインデックスが参照された場合ある値を既定値として返す方法についてです。 Javascriptのように var a = [0,1,2,3,4]; window.alert(a[5] || "out"); // out みたいに書く方法がないかなと考えていたのですが…

Index Errorを扱う

先日作成したCSVをJSONに変換するプログラムをもっと実用的にしようと、各行の長さ(要素数)が等しくない場合の扱いを書いていました。改めてJavascriptの配列とPythonのリストは似ているようで違うなぁと感じたので整理を。Pythonのリストで要素数の外側のイ…

Eclipseをダウンロードしてみました

これまでPythonのコードはテキストエディタで書いていたのですが入力のアシストと構文チェックは欲しいと思い開発環境を導入することにしました。 Javascriptを書くのにEclipseベースのAptana Studioを使っていたこともありEclipseとPyDevをダウンロードして…

便利なOrderedDict

昨日のエントリで辞書のkeyがソートされないようにしたいと書いたのですがOrderedDictという順序付辞書を使うといいようです。 Pythonの辞書をfor in文でループすると処理される順番は処理系まかせなのですが、OrderedDictは作成された順が維持されます。こ…

初Pythonプログラム csvをjsonに変換

Pythonについて一通り基本部分は勉強したはずなのでとりあえず何か作ってみようと思いました。私はこれまでJavascriptしか勉強したことがなかったので(はるか昔Cを勉強しましたがすでに忘れてしまいました)、ファイルの入出力を扱ったことがほとんどありませ…

for in 文の処理について(続編)

先日のエントリでJavascriptのfor in文について for in文は処理済みのプロパティ名のみを覚えていてプロパティの数はチェックしない。未処理のプロパティが存在するか否かはループ内の処理が終わるたびにその時点でのプロパティと処理済のプロパティを比較し…

Operaの特殊な?挙動

Operaの動作について気づいたことがあるのでメモ。JavascriptからDOMに対して一度に複数の処理を行った場合、多くのブラウザでは関数の終わりにまとめてそれらの操作が画面に反映されるのに対してOperaは操作が逐一画面に反映されます。下のコードを実行する…

Pythonで日本語が文字化けした場合のチェックポイント

このエントリは先日のエントリの補足的な内容となります。 先にそちらをお読みいただき、さらにhttp://www.python.jp/Zope/articles/japanese/Python4Japanese-2も確認した上で、それでも文字化けが発生してしまった場合チェックすべき点についての内容とな…

for (in) 文の内部から走査中の(連想)配列の項目数をいじる

昨日のエントリにてPythonのfor in文について書きましたがJavascriptの場合はどうだったかな、と思って調べてみました。 ループ中にループ内から走査中の配列・連想配列の項目を削除、追加した場合の挙動についてです。 そのような処理を実際に書いたことは…

for in 文の処理について

思い込みによる間違いの可能性があったのでループを抜ける時の判定について追記しました。(1/21)引き続きPythonの勉強をしているのですが、今日Listについて調べているとPython Lists | Python Education | Google Developers内に次のような記述がありました…

Pythonの日本語の扱い

昨日のエントリに掲載したhttp://code.google.com/edu/languages/google-python-class/index.htmlですが すでに私が訳した部分も含む全体を日本語に訳されている方がいました。 手習い録: Google's Python Classもっと早く気づいていれば・・・! まぁ英語の…

Google Python 講座

先日のエントリでPython勉強しますと書いた後、色々教材を探していて見つけたのですが なんとPythonにはGoogle's Python Classというグーグルによる講座があるのです。 ビデオ、テキスト、練習課題と内容もなかなか充実しているのですが残念ながら英語版しか…

愛(i)は地球を汚染しやすい

地球はグローバルスコープという意味で。以前に自分が書いたコードをメンテナンスしていると結構やってしまっている書き方に次の物があります。 arrayという要素数が100の配列をグローバルに宣言して要素をすべて0に初期化するとします。 var array = new Ar…

ローカルだけではできないこと

Javascriptを勉強しながらwebサイトの運営をしているとどうしてもローカルだけではできないことがやりたくなってきます。 ローカルだけではできない事とはつまり、ある利用者の行動が他の利用者の表示に影響を与えることすべて、ですね。 JavascriptやCSSを…

私が今までクロージャを理解できなかった理由

Javascriptを勉強する上で誰もがつまずくと言われるクロージャですが私も例に漏れず理解できないでいました。 さまざまな解説サイトを読んだりサンプルコードを書き換えてみたりして 静的なスコープの言語で利用できる。 関数が終了したあともそのローカル変…

インデントの話

私はこれまでコードを書く際インデントはTabを使っていたんですが世間的にはスペースの方が好まれるみたいですね。 理由はタブ幅はエディタによって異なるからだとか。 なので私も今後はインデントはスペースを使おう!と思っていたのですがよく考えると 一…

Javascript 関数定義の疑問

Javascriptを勉強しはじめてからDan Kogaiさんのブログ404 Blog Not Foundを読んでいるのですが関数(コンストラクタ)定義について謎に思っていることがありまして。例えばこの記事404 Blog Not Found:javascript - からnewを取り除いてみるですが一番上のサ…

ブログはじめました。

最近プログラムを勉強している素人です!プログラムは大学でCをちょこっと勉強した程度だったのですがウェブの管理をきっかけにJavascriptの勉強を始めました。 そこからプログラムが面白くなっていろいろ勉強しています。自身の考えの整理や覚書としての利…