本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法。分享给大家供大家参考,具体如下:

一、需求

今天写了三千二百行代码。

今天写了3200行代码。

两行意思相同,只是表达方式不太能够,统一掉。

二、原理

数字的特征是 数字 + 单位,例如三百,四十二,九千零二

可以从后往前遍历,遇到的是0到9的数字,就乘以前一位的单位,遇到新的单位(十百千万)就替换成数字供下一个数字用。

三、举例

五百四十三

1. 三-->3 3 <10 : total = 3

2. 十-->10, 10 ≥10,且不为0 : r = 10

3. 四-->4, 4<10 : total = 3 + 4*10 = 43

4. 百-->100, 10 0≥10,且不为0 : r = 100

5. 五-->5, 5<10 : total = 43 + 5*100 = 543

四、参考代码

#-*- coding: cp936 -*-

import re

import string

common_used_numerals_tmp ={'零':0, '一':1, '二':2, '两':2, '三':3, '四':4, '五':5, '六':6, '七':7, '八':8, '九':9, '十':10, '百':100, '千':1000, '万':10000, '亿':100000000}

common_used_numerals = {}

for key in common_used_numerals_tmp:

common_used_numerals[key.decode('cp936')] = common_used_numerals_tmp[key]

def chinese2digits(uchars_chinese):

total = 0

r = 1 #表示单位:个十百千...

for i in range(len(uchars_chinese) - 1, -1, -1):

val = common_used_numerals.get(uchars_chinese[i])

if val >= 10 and i == 0: #应对 十三 十四 十*之类

if val > r:

r = val

total = total + val

else:

r = r * val

#total =total + r * x

elif val >= 10:

if val > r:

r = val

else:

r = r * val

else:

total = total + r * val

return total

print chinese2digits('两百三十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('一亿零八万零三百二十三'.decode('cp936'))

结果:

PS:这里再为大家提供几款数字转换相关工具供大家参考使用:

希望本文所述对大家Python程序设计有所帮助。

python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例相关推荐

  1. python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例

    本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...

  2. python123数字转换_Python将汉字数字转换成阿拉伯数字的方法

    用Python将汉字数字转换成阿拉伯数字的方法.汉字数字就是我们的大写数字:零.壹.贰.叁.肆.伍.陆.柒.捌.玖.拾,这种只有在会计人员才会常用的数字. Python把用汉字表示的数字转换为阿拉伯数 ...

  3. python求数字平均值_Python简单计算数组元素平均值的方法示例

    本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE : Wing IDE Professional ...

  4. python 文件格式转换_python实现txt文件格式转换为arff格式

    本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体内容如下 将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的. 文件要求第一 ...

  5. c#把日期改成数字字符串_C#编写壹个函数将输入的中文日期转换为阿拉伯数字日期...

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Date ...

  6. 用原生js把数字转换成货币人民币表示带逗号表示方法

    用原生js把数字转换成货币人民币表示带逗号表示方法 function rmb(str){let strArr = String( parseFloat(str).toFixed(2) ).split( ...

  7. python time计时_python中的计时器timeit的使用方法

    这篇文章主要介绍了关于python中的计时器timeit的使用方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文介绍了python中的计时器timeit的使用方法,分享给大家,具 ...

  8. java docx转html实例_Java实现将word转换为html的方法示例【doc与docx格式】

    Java实现将word转换为html的方法示例[doc与docx格式] 发布于 2020-6-14| 复制链接 摘记: 本文实例讲述了Java实现将word转换为html的方法.分享给大家供大家参考, ...

  9. Python实现计算圆周率π的值到任意位的方法示例

    Python实现计算圆周率π的值到任意位的方法示例 本文实例讲述了Python实现计算圆周率π的值到任意位的方法.分享给大家供大家参考,具体如下: 一.需求分析 输入想要计算到小数点后的位数,计算圆周 ...

最新文章

  1. RecyclerView IndexOutOfBoundException
  2. 前端一HTML:十五: 层叠,权重,优先级的关系
  3. 实现单台测试机6万websocket长连接
  4. Python学习笔记(二)——高级特性
  5. vs2008 C++创建和调用标准DLL
  6. python怎么重命名word文件,Python读取word文本操作详解
  7. Java动态代理全面分析
  8. 安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
  9. 【POJ 3276】【开关问题】Face The Right Way【暑期 No.4】
  10. php xml网站地图生成,PHP代码自动生成XML版网站地图
  11. jQuery全选全删动态表格
  12. Ubuntu18.04图标显示实时网速
  13. Python自动化完成tb喵币任务V2.0
  14. 16个Javascript的Web UI库、框架及工具包
  15. 【愚公系列】2022年10月 使用win11系统自带远程桌面,远程控制VMware中Windows虚拟机系统
  16. 软件对硬盘性能测试,硬盘性能检测详细图文教程
  17. 基于C#在WPF中使用斑马打印机进行打印
  18. cgb2105-day02
  19. GUI(图形用户界面)——AWT概述、布局管理器
  20. 电脑一键还原,电脑怎么一键还原系统(手把手教你电脑一键还原)

热门文章

  1. matlab imresize对图像进行缩小放大
  2. idf实验室--简单编程字符统计
  3. 分布式系统部署、监控与进程管理的几重境界
  4. UDP Socket编程 C/C++实现 (Windows Platform SDK)
  5. linux系统界面光标不见了---木有了
  6. 战略分析思路——商业模式及沙盘推演
  7. linux etc 服务启动脚本,linux 服务脚本启动问题
  8. cobbler的dhcp服务_Cobbler服务器安装部署
  9. macbook pro python开发_Mac打造python2 python3开发环境
  10. mac cad石材填充图案_CAD电视背景墙画法步骤