Python实现中文数字转换为阿拉伯数字的方法示例

发布时间 - 2026-01-11 01:22:57    点击率:

本文实例讲述了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:这里再为大家提供几款数字转换相关工具供大家参考使用:

人民币大写在线转换工具:
http://tools./zhuanhuanqi/rmbupper

在线阿拉伯数字翻译成英文工具:
http://tools./transcoding/num2english

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

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


# Python  # 中文  # 数字  # 转换  # 阿拉伯数字  # python将中文数字转化成阿拉伯数字的简单方法  # Python使用cn2an实现中文数字与阿拉伯数字的相互转换  # python实现将中文日期转换为数字日期  # Python实现把数字转换成中文  # python中将阿拉伯数字转换成中文的实现代码  # python数字转对应中文的方法总结  # 写了  # 不为  # 的是  # 进阶  # 操作技巧  # 百千  # 相关内容  # 不太  # 遍历  # 感兴趣  # 数据结构  # 英文  # 给大家  # 更多关于  # 转换为  # 二百  # 所述  # 几款  # 程序设计  # 使用技巧 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS实现鼠标移上去显示图片或微信二维码  如何快速搭建高效WAP手机网站吸引移动用户?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  微信小程序 input输入框控件详解及实例(多种示例)  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何在阿里云香港服务器快速搭建网站?  如何在Windows环境下新建FTP站点并设置权限?  ,交易猫的商品怎么发布到网站上去?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何用5美元大硬盘VPS安全高效搭建个人网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Windows Hello人脸识别突然无法使用  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  昵图网官方站入口 昵图网素材图库官网入口  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何快速建站并高效导出源代码?  Android 常见的图片加载框架详细介绍  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  php 三元运算符实例详细介绍  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  网站页面设计需要考虑到这些问题  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  新三国志曹操传主线渭水交兵攻略  Android自定义listview布局实现上拉加载下拉刷新功能  微信小程序 配置文件详细介绍  ,网页ppt怎么弄成自己的ppt?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel如何记录自定义日志?(Log频道配置)  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  详解jQuery中基本的动画方法  黑客入侵网站服务器的常见手法有哪些?  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何用狗爹虚拟主机快速搭建网站?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何在IIS中新建站点并配置端口与物理路径?  如何快速搭建高效简练网站?  如何快速生成ASP一键建站模板并优化安全性?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门