保定网站建设培训班,团员团干部如何登录到系统,怎么做网络游戏,如何编辑网站模板题目#xff1a;中文数字转换为阿拉伯数字#xff0c;如下#xff1a;
输入#xff1a;
十一万亿五千三百万三千二百零七输出#xff1a;
11000053003207思路#xff1a; 先写一个处理10000以下的转换函数#xff0c;如下代码的 num_process() 以亿和万分别进行切分…题目中文数字转换为阿拉伯数字如下
输入
十一万亿五千三百万三千二百零七输出
11000053003207思路 先写一个处理10000以下的转换函数如下代码的 num_process() 以亿和万分别进行切分如下代码的yi_wan_process()
num_map {零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9}unit_map {十: 10, 百: 100, 千: 1000, 万: 10000, 亿: 100000000}# 处理 一万 以下的情况
def num_process(chinese_number):if not chinese_number:return 0result 0first_unit chinese_number[0] in unit_mapnum 0for index, char in enumerate(chinese_number):if char in num_map:num num_map[char]if index len(chinese_number) - 1:result numelif char in unit_map:if index 0 and first_unit:result unit_map[char]else:result num * unit_map[char]num 0return result# 以 亿 和 万 进行切分
def yi_wan_process(chinese_number, split_unit):if not chinese_number:return 0result 0before, after , chinese_numberindex chinese_number.find(split_unit)if index ! -1:before chinese_number[:index]after chinese_number[index 1:]if split_unit 亿:result yi_wan_process(before, 万) * unit_map[split_unit]result yi_wan_process(after, 万)elif split_unit 万:result num_process(before) * unit_map[split_unit]result num_process(after)return resultdef chinese_to_arabic(chinese_number):if not chinese_number:return 0return yi_wan_process(chinese_number, 亿)if __name__ __main__:chinese_number 十一万亿五千三百万三千二百零七result chinese_to_arabic(chinese_number)print(chinese_number, result) # 十一万亿五千三百万三千二百零七 11000053003207