數字轉中文 python
一億以內阿拉伯數字轉中文 第一想法 只有用字典對映轉換,四位四位處理。好多規則,好多if -else。
冷靜下來再想想 可以不用四位四位處理:一次性轉換後再逆序在指定位置上插入“量詞”後再逆序回來。相對少一點if-else, 稍優雅一點點的版本如下:
# encoding: utf-8
num_dict= \
{"0":"零",
"1":"一",
"2":"二",
"3":"三",
"4":"四",
"5":"五",
"6":"六",
"7":"七",
"8":"八",
"9":"九",
"-":"負"}
concat_mid_list = ["", "十", "百", "千", "萬"]
def auth(num):
if not isinstance(num, int):
print("error input, should be integer")
return False
if abs(num) > 1e8:
print("error input, abs value should be less than 1e8")
return False
return True
def num2chinese(num):
if not auth(num):
return ""
temp_chinese = derect_translate(num)
# print("temp_chinese is ", temp_chinese)
updated_chinese = update(temp_chinese)
if num >= 0:
return updated_chinese
return num_dict[str(num)[0]] + updated_chinese
def derect_translate(num):
return [num_dict[x] for x in str(abs(num))]
def update(temp_chinese):
tmp_inf = []
for ix, x in enumerate(temp_chinese[::-1]):
if x == "零":
# 當前位為0時 特殊處理重複零(上一個為零)問題
if tmp_inf and (tmp_inf[-1] == "零" or tmp_inf[-1] == "零"):
pass
elif tmp_inf or len(temp_chinese) == 1:
tmp_inf.append(x)
else:
tmp_inf.append(x + concat_mid_list[ix % 4])
# 特殊處理 萬這個單位上的字元
if ix == 3 and len(temp_chinese) > 4:
tmp_inf.append("萬")
# print("tmp_inf is ", tmp_inf)
tmp_inf.reverse()
return "".join(tmp_inf)
if name == '__main__':
print(num2chinese(67090))
相關文章
- Python數字轉換中文大寫Python
- python將中文數字轉化成阿拉伯數字Python
- 中文數字阿拉伯數字相互轉換
- Python 英文的月份轉數字及數字轉英文Python
- PHP 阿拉伯數字和中文數字的相互轉換PHP
- 一種中文數字轉阿拉伯數字的解決方案
- 數字金額轉中文繁體大寫
- Python 轉換金額數字大寫為數字小寫Python
- LeetCode_Python(13)_羅馬數字轉整數LeetCodePython
- python-leetcode13羅馬數字轉整數PythonLeetCode
- 鴻蒙NEXT開發案例:數字轉中文大小寫鴻蒙
- 記一次bug解決過程(數字轉化成中文)
- 數字反轉
- 演算法題:阿拉伯數字轉化為中文讀法演算法
- 用Python實現阿拉伯數字轉換成中國漢字Python
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- js -- 數字轉文字JS
- 數字化轉型
- Python Number(數字)Python
- 羅馬數字轉整數
- 什麼是數字化轉型,如何理解數字化轉型?
- 數字格式字串轉數字保留後面0字串
- jquery金額數字轉為大寫數字jQuery
- 再見數字化轉型:對數字化轉型的再思考
- python實現中文和unicode轉換PythonUnicode
- JavaScript字串轉換數字JavaScript字串
- 字串或數字反轉字串
- 數字化能做什麼?如何數字化轉型?
- 阿拉伯-漢字-數字轉換
- PHP 將數字轉換為漢字PHP
- Roman to Integer 羅馬數字轉整數
- LeetCode 13[羅馬數字轉整數]LeetCode
- 13. 羅馬數字轉整數
- Python 編碼轉換與中文處理Python
- 數字化轉型備受關注,為何要數字化轉型呢?
- utils公共方法:將數字轉為漢字
- string與數字相互轉換
- 字串轉數字的問題字串