このBlogは移転しました。今後は aish.dev を御覧ください。

Python3 の数値型

お前ら、Python3 だと、みんな大好き全角数字使えるの知ってた?

>>> int('100')
100
>>> int('100')
100
>>> int('100', 16)
256

ってことは、これがエラーになるのはバグじゃないか?

>>> int('FF', 16)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ValueError: invalid literal for int() with base 16: 'FF'

追記

Jun Omae⁽⁻⁶⁶ʲ⁵⁾ さんの Tweet によれば

Python3 の数値型 http://www.gembook.org/python3-noshu-zhi-xing.html … Python3 からってわけじゃなくて py24 とかでも int(u'100', 16) #=> 256 ってなりますよ

ということで、ちゃんと試してみたら 2.7 でも全角数字が使えました。一応、このエントリを書く前に 2.7 で試してたんですが、今思えば int('100') しか試してなくて、これはもちろん int(u'100') で試さないと意味がなかったです。

しかしこの機能、気が付かなかったなぁ... そんな昔からあったか... いったい誰得なんだ...