これは、実際には関数で比較的簡単に実行できます。
def convert_kanji(self, zahl):
japnumber = ("兆", "億", "万")
jap_factors = {
"兆": 1000000000000,
"億": 100000000,
"万": 10000
}
#Define the variables
converted_number = 0
already_found = False
found_kanji_previous = 0
try: #If the number can be returned as an integer (i.e. no Kanji in it) -> do it
return(int(zahl))
except ValueError: #If not, disintegrate it
for key in japnumber: #do it for every Kanji
if key in zahl: #If it has been found in the original string:
gef_kanji = zahl.find(key) #mark, which Kanji has been found
if not already_found: #if it is the first kanji:
intermediate_step = int(zahl[:gef_kanji]) * jap_factors[key] #Convert the number in front of the Kanji with the appropriate factor
converted_number = intermediate_step
already_found = True
found_kanji_previous = gef_kanji
else: #for sll other kanjis
intermediate_step = int(zahl[found_kanji_previous+1:gef_kanji]) * jap_factors[key]
converted_number = converted_number + intermediate_step #sum them up
found_kanji_previous = gef_kanji
if len(zahl) > (found_kanji_previous+1):
converted_number = converted_number + int(zahl[found_kanji_previous+1:])
return converted_number
これはまだ比較的単純です。2314兆3424億3422万2342の形式の数値のみを受け入れることができます。
また、これは実際には長い間私の最初のプログラムだったので、コードは非常に悪いかもしれません. しかし、それはあなたにとって良い出発点かもしれません。
私は実際に現在、日本語の数字を読みやすい西洋の数字に変換する簡単なコンバーターに取り組んでいます (たとえば、231億を「231億」に変換します。実際には既にそれを行っています)。全角文字、数字を完全に漢字にするなど、やるべきことがたくさんあると思います。すべてに取り組んだら、同じように漢字としてアップロードするかもしれません:D