python

[python] switchもどき

ipythonにはswitch, case文はありません。 breakの書き忘れで変なバグを生まないように…だとか。 でも、if, elifを重ねるのって嫌ですよね。 特に同一変数の評価をif, elifで書くとなんだか非効率な気もする… そこで、こんな書き方。 ...

python

[python] difflibを使ってみる

pythonには、標準でdifflibというモジュールが含まれています。 いわゆる、linuxのdiff相当のことができます。 import difflib a = ''' abc def ghi ''' b = &...

Java

[Java]Java7からはヨーダ記法はイディオムではなくなった?

ヨーダ記法というのがある。オブジェクト(特に文字列)を比較する際にnullチェックを省略するために対象のオブジェクトではなく、リテラルの方のequalsメソッドを使う手法だ。 String jedi; ... if ("Yoda".equals(jedi...

linux シェルスクリプト

[シェルスクリプト]ランダムな数値

シェルスクリプトでランダムな数値を得る必要があったのでちょっと調べてみました。 bashならRANDOM変数が使える。 例えば0から9の整数をランダムに得たければ、以下のようにする。 $ echo $(($RANDOM % 10)) $RANDOMは0から32767...

JavaScript

[JavaScript] 文字列結合の速さ

どんな言語でもよく使う文字列結合。 +演算子を使って結合する方法と、配列に入れてからjoinする方法 どちらが速いのか実験してみました。 var n = 1000000 , s = 'abc' , str = '' , arr ...

JavaScript

[JavaScript]整数の最大値

JavaScriptで整数をインクリメントしていくと、あるところでそれ以上大きくならなくなる。 for (let i = 0; i < veryLargeNumber; i++) { ... } ... 9007199254740989 9007199254...

python

[python] SyntaxError. Non-ASCII character

タイトルのエラーが出たら、 文字のエンコードの問題。 ファイルの先頭に # coding: utf-8 と書くと回避できる。 coding:のgと:の間に空白があるとダメ。:とutf-8のuの間は空いてもオッケー。 界隈では、-*- coding:...

python

[python] 辞書のループ

いつも忘れるので、メモっておこう dic = { 'name': 'Mizu.A', 'age': 33 } for k, v in dic.iteritems(): print k + '=' + ...

JavaScript

JavaScriptのループ その3

[その1] では以下のようなループで変数iのスコープで関数全体になってしまうと書いた。 これはJavaScriptでは変数にブロックスコープがなく、var変数はどこで宣言しても関数の先頭で宣言したのと同じように扱われてしまうからだ。 ※ちなみに変数宣言が関数の先頭に移動してし...