🐍

数値を大字(だいじ)に変換するPythonモジュールを作成しました

2023/01/03に公開1

前置き

数値を大字(だいじ)に変換するDaijiJa Pythonモジュールを作成しました。Pythonは趣味で長いこと使ってきましたが、モジュールを作成してGitHubにレポジトリを作成したのは初めてのことなので、記録として残しておきます。

モジュールの紹介

DaijiJaモジュールは、日本で領収書などを作成するときに使用される漢数字表記(例:壱万弐千円也)を整数値から作成する機能を持っています。例えば下のように使います。

import DaijiJa
print(DaijiJa.daiji(123456))
壱拾弐万参千四百五拾六

旧式の文字を使いたい場合もあると思われます。mode引数で使われる漢字を変更できるようにしてあります。デフォルトはmode=1です。

print(DaijiJa.daiji(123456,mode=2))
壹拾貳万參千四百五拾六
print(DaijiJa.daiji(123456,mode=3))
壹拾貳萬參仟肆佰伍拾陸

もしいずれのmodeも使いたいものではない、という場合は、charlistに文字列を指定することでそれを使って表記します。charlistは漢字である必要もありません。

import DaijiJa
print(DaijiJa.daiji(123456, charlist='0123456789jhsmo'))
1j2m3s4h5j6

こうした表記のことを大字(だいじ)というそうです(対して通常の漢数字を小字というとか)。もともとは領収書などの金額を改ざんされるのを防ぐためにこのような書き方をするそうですが、電子的な文字の場合はこの方法が実用的なのか、大いに疑問ではあります。作者としては何か「雰囲気」を出したいときに使うことを想定しています。

環境

Pythonは作成時点で3.9.12ですが、特にバージョンに依存する機能はありません。前提となるモジュールもありません。デフォルトのPython環境で動作します。

入手先

GitHubにレポジトリを作ってありますので、ここから取得してください。

pip install git+https://github.com/WindVoiceVox/DaijiJa

なお、ライセンス表記がないと使うのに困る、ということがあるのでMITライセンスを適用することにします。

なぜ作ったの?

Pythonのモジュールを作ってみたい、というのが出発点で、そこに偶然浮かんできたのがこの機能でした。本当に単なる思いつきの泥縄式開発です。ふとした思いつきがあるとき、大体は誰かがすでに作っているものですが、この機能は探した限り誰も作っていないようです(たぶん)。

何かの必要に迫られて、というものではありません。

参考

https://zenn.dev/karaage0703/articles/db8c663640c68b

Discussion

mitsumitsu

'15'の時、'一十五'のようになりませんか?