python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了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实现中文数字转换为阿拉伯数字的方法示例相关推荐
- python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- python123数字转换_Python将汉字数字转换成阿拉伯数字的方法
用Python将汉字数字转换成阿拉伯数字的方法.汉字数字就是我们的大写数字:零.壹.贰.叁.肆.伍.陆.柒.捌.玖.拾,这种只有在会计人员才会常用的数字. Python把用汉字表示的数字转换为阿拉伯数 ...
- python求数字平均值_Python简单计算数组元素平均值的方法示例
本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE : Wing IDE Professional ...
- python 文件格式转换_python实现txt文件格式转换为arff格式
本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体内容如下 将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的. 文件要求第一 ...
- c#把日期改成数字字符串_C#编写壹个函数将输入的中文日期转换为阿拉伯数字日期...
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Date ...
- 用原生js把数字转换成货币人民币表示带逗号表示方法
用原生js把数字转换成货币人民币表示带逗号表示方法 function rmb(str){let strArr = String( parseFloat(str).toFixed(2) ).split( ...
- python time计时_python中的计时器timeit的使用方法
这篇文章主要介绍了关于python中的计时器timeit的使用方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文介绍了python中的计时器timeit的使用方法,分享给大家,具 ...
- java docx转html实例_Java实现将word转换为html的方法示例【doc与docx格式】
Java实现将word转换为html的方法示例[doc与docx格式] 发布于 2020-6-14| 复制链接 摘记: 本文实例讲述了Java实现将word转换为html的方法.分享给大家供大家参考, ...
- Python实现计算圆周率π的值到任意位的方法示例
Python实现计算圆周率π的值到任意位的方法示例 本文实例讲述了Python实现计算圆周率π的值到任意位的方法.分享给大家供大家参考,具体如下: 一.需求分析 输入想要计算到小数点后的位数,计算圆周 ...
最新文章
- RecyclerView IndexOutOfBoundException
- 前端一HTML:十五: 层叠,权重,优先级的关系
- 实现单台测试机6万websocket长连接
- Python学习笔记(二)——高级特性
- vs2008 C++创建和调用标准DLL
- python怎么重命名word文件,Python读取word文本操作详解
- Java动态代理全面分析
- 安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
- 【POJ 3276】【开关问题】Face The Right Way【暑期 No.4】
- php xml网站地图生成,PHP代码自动生成XML版网站地图
- jQuery全选全删动态表格
- Ubuntu18.04图标显示实时网速
- Python自动化完成tb喵币任务V2.0
- 16个Javascript的Web UI库、框架及工具包
- 【愚公系列】2022年10月 使用win11系统自带远程桌面,远程控制VMware中Windows虚拟机系统
- 软件对硬盘性能测试,硬盘性能检测详细图文教程
- 基于C#在WPF中使用斑马打印机进行打印
- cgb2105-day02
- GUI(图形用户界面)——AWT概述、布局管理器
- 电脑一键还原,电脑怎么一键还原系统(手把手教你电脑一键还原)
热门文章
- matlab imresize对图像进行缩小放大
- idf实验室--简单编程字符统计
- 分布式系统部署、监控与进程管理的几重境界
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- linux系统界面光标不见了---木有了
- 战略分析思路——商业模式及沙盘推演
- linux etc 服务启动脚本,linux 服务脚本启动问题
- cobbler的dhcp服务_Cobbler服务器安装部署
- macbook pro python开发_Mac打造python2 python3开发环境
- mac cad石材填充图案_CAD电视背景墙画法步骤