備忘録がてらメモ。
pythonにおいて文字列→数値へパースする際、使用できる文字はちょっと特殊で全角の「1」なども含まれる。
ただ当たり前だが、それを更に文字列に変換すると半角数字になるので注意。
例: demo.py
raw_value = "1" # 全角の「1」を与える
value = int(raw_value) # intへ変換
print(str(value)) # 半角の「1」が出力される
結果: demo.py
1
ちなみに余談だが[string.isdigit()]という関数は文字列が数字であるかどうかを返し、今回のような全角の「1」などでもちゃんとTrueを返す。
ただこの関数は残念なことに、正負の記号(+や-)が含まれるとFalseを返す。
(なんでやねん)
なのでバリデーションに使用する場合には、しっかりこの辺を考慮しなければならない。