本文实例讲述了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中如何将十进制小数转换成二进制 在最近的学习中发现博客园里面找不到如何在python中如何将十进制小数转换成二进制,所以我用土方法写了一个超级简单的转换方法(不过转换出来的数只是形式上是 ...

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

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

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

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

  4. python时间戳转换字符串_在Python中如何将时间戳转换成字符串

    我对以下代码有问题.我得到一个错误"strTime()参数1必须是str,而不是Timestamp" 我想我应该做的是把日期从时间戳转换成字符串,但我不知道该怎么做.在class ...

  5. python将文档转换成pdf_Python实现将DOC文档转换为PDF的方法

    本文实例讲述了Python实现将DOC文档转换为PDF的方法.分享给大家供大家参考.具体实现方法如下: import sys, os from win32com.client import Dispa ...

  6. Java 将小写的数字转换成对应的大写的汉字数字

    例:将"324321214321432114321143211432"转化成 叁贰肆叁贰壹贰壹肆叁贰壹肆叁贰壹壹肆叁贰壹壹肆叁贰壹壹肆叁贰 public static void m ...

  7. python中用于绘制各种图形的区域称作_Python使用matplotlib填充图形指定区域代码示例...

    Python使用matplotlib填充图形指定区域代码示例 本文代码重点在于演示Python扩展库matplotlib.pyplot中fill_between()函数的用法. import nump ...

  8. python中func函数可以没有返回值吗_python让函数不返回结果的方法

    1.简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值:作为函数的输出,可以用变量接走,继续使用该返回值做其它事. 2.函数需要 ...

  9. 将字符转换成数字(atoi),将数字转换成字符(itoa)

    目录 一.将字符转换为数字. 二.将数字转换成字符. 一.将字符转换为数字. (首先字符必须是"0" -"9",然后转换成十进制的数字) 比如将"12 ...

  10. python数字转换成中文大写

    python数字转换成中文大写 代码 #-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级 ...

最新文章

  1. Xamarin中打开别人项目找不到android.jar文件
  2. 在Oracle中实现自增加ID的功能
  3. 《实施Cisco统一通信管理器(CIPT2)》一1.2 概述部署多站点环境时将会遇到的挑战...
  4. 使用Volley StringRequest Get的方式进行发票查询操作
  5. 2018-2019-1 《信息安全系统设计基础》教学进程
  6. 使用valueOf前必须进行校验
  7. 多次fork问题(python 版)
  8. freemarker结合springMVC配置
  9. virtualbox+vagrant学习-3-Vagrant Share-5-Security
  10. Android开发之SQLite的使用方法
  11. 去中心化NFT交易生态系统Mochi.Market将在DAO Pad进行SHO
  12. PCL——向PCD文件写入点云数据
  13. C/C++语言传参、返回参数知识点讲解
  14. Android RelativeLayout 相对布局
  15. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  16. 业务,大数据监控平台搭建
  17. 常用的网络进行广告推广的落实措施都有哪些渠道呢
  18. 如何删除金山毒霸网址导航
  19. 移动端网页字体过多时,字体被自动放大问题
  20. 手把手教你用Python分析微信聊天内容

热门文章

  1. Ubuntu和本机之间复制粘贴
  2. 代采供应链金融系统-完整实现境内外采购业务的运营和管理
  3. PCB四层板设计步骤
  4. TCR历史期刊为何受大家欢迎?
  5. 金融量化分析基础环境搭建
  6. centos7 下载百度网盘中文件的方法
  7. java- string转成 json
  8. mysql远程过程调用失败怎么办_远程过程调用失败且未执行是什么意思
  9. Axure R8学习记录
  10. 广州香格里拉 · 紫光物联招商大会圆满结束!