理解した

Jython2.2.1の挙動:

>>> unicode(u"あ")
u'\u3042'
>>> unicode(u"\u3042")
u'\u3042'
>>> "あ"
u'\u3042'
>>> unicode(_)
u'B'

なんでBになるのか理解した。

        • -


>>> data = "太郎:25, 花子:23, 次郎:21"
>>> data
u'\u592A\u90CE:25, \u82B1\u5B50:23, \u6B21\u90CE:21'
>>> print data
(化け化け)
ぎゃあ


>>> data = u"太郎:25, 花子:23, 次郎:21"
>>> data
u'\u592A\u90CE:25, \u82B1\u5B50:23, \u6B21\u90CE:21'
>>> print data
太郎:25, 花子:23, 次郎:21

ふう。もう化けた文字を見るたびに心臓止まりそうになるから勘弁して欲しい。

        • -


>>> print u"1ドルが%.2f円の時、100円は%.2fドル" % (140, 100.0 / 140)
1ノ?140.00?B100?0.71ノ?

ぎゃあ。
フォーマット操作にはやっぱりバグがあるのか…。


>>> print u"あ%d" % 1
B1

うーん。

        • -

なんかね、可能な限り日本語を使っているせいで、日本語が化けるとなると修正箇所が膨大なんだよ。


# タプルを使うと複数の値を埋め込める
>>> print "%sは%d円です。" % ("ダイコン", 100)
ダイコンは100円です。

これとか「ダイコン」を「daikon」にして満足できるかというと絶対にそんなことはないので自然なサンプルを考えないといけないわけだよ。


# タプルを使うと複数の値を埋め込める
>>> print "%s is %d years old." % ("Alice", 26)
Alice is 26 years old.

こうなった。

        • -

フォーマット操作で日本語が壊れるバグには言及してあるんだけど、2回目に「print "%dは素数です!" % n」とか出てきたときにまた「これはバグのせいでこわれます」と書くのか、それとも「print n, "は素数です!"」に変えるのか。

        • -

また出てきた。