數字轉中文 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
- Python 英文的月份轉數字及數字轉英文Python
- PHP 阿拉伯數字和中文數字的相互轉換PHP
- 一種中文數字轉阿拉伯數字的解決方案
- 給定數字生成中文數字(MySQL)MySql
- 用VB把數字轉成中文字串 (轉)字串
- Python 轉換金額數字大寫為數字小寫Python
- 數字轉換為中文大寫例項程式碼
- 鴻蒙NEXT開發案例:數字轉中文大小寫鴻蒙
- LeetCode_Python(13)_羅馬數字轉整數LeetCodePython
- python-leetcode13羅馬數字轉整數PythonLeetCode
- Python 數字Python
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- 記一次bug解決過程(數字轉化成中文)
- C#純數學方法遞迴實現貨幣數字轉換中文C#遞迴
- PHP資料型別轉換(字元轉數字,數字轉字元)PHP資料型別字元
- Python Number(數字)Python
- Python 數字操作Python
- C++/C:數字轉成字串, 字串轉成數字C++字串
- Awk 字串連線操作(字串轉數字,數字轉字串)字串
- 演算法題:阿拉伯數字轉化為中文讀法演算法
- 使用C#實現阿拉伯數字到大寫中文的轉換 (轉)C#
- 用Python實現阿拉伯數字轉換成中國漢字Python
- js -- 數字轉文字JS
- 數字格式字串轉數字保留後面0字串
- jquery金額數字轉為大寫數字jQuery
- 什麼是數字化轉型,如何理解數字化轉型?
- 再見數字化轉型:對數字化轉型的再思考
- 阿拉伯-漢字-數字轉換
- PHP 將數字轉換為漢字PHP
- 字串或數字反轉字串
- JavaScript字串轉換數字JavaScript字串
- ip、數字的互轉
- 數字印章技術 (轉)
- 將字串轉為數字字串