【python】如何把字符串类型的数字统一形式,如:"一亿三千万元"->"130000000元"

Python027

【python】如何把字符串类型的数字统一形式,如:"一亿三千万元"->"130000000元",第1张

#!/usr/bin/env python    

# coding: utf-8    

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

      u'0':0, u'1':1, u'2':2, u'3':3, u'4':4, u'5':5, u'6':6, u'7':7, u'8':8, u'9':9,    

               u'壹':1, u'贰':2, u'叁':3, u'肆':4, u'伍':5, u'陆':6, u'柒':7, u'捌':8, u'玖':9, u'拾':10, u'佰':100, u'仟':1000, u'万':10000,    

      u'亿':100000000}    

def getResultForDigit(a, encoding="utf-8"):    

   if isinstance(a, str):    

       a = a.decode(encoding)    

   count = 0     

   result = 0    

   tmp = 0    

   Billion = 0      

   while count < len(a):    

       tmpChr = a[count]    

       #print tmpChr    

       tmpNum = dict.get(tmpChr, None)    

       #如果等于1亿    

       if tmpNum == 100000000:    

           result = result + tmp    

           result = result * tmpNum    

           #获得亿以上的数量,将其保存在中间变量Billion中并清空result    

           Billion = Billion * 100000000 + result    

           result = 0    

           tmp = 0    

       #如果等于1万    

       elif tmpNum == 10000:    

           result = result + tmp    

           result = result * tmpNum    

           tmp = 0    

       #如果等于十或者百,千    

       elif tmpNum >= 10:    

           if tmp == 0:    

               tmp = 1    

           result = result + tmpNum * tmp    

           tmp = 0    

       #如果是个位数    

       elif tmpNum is not None:    

           tmp = tmp * 10 + tmpNum    

       count += 1    

   result = result + tmp    

   result = result + Billion    

   return result    

if __name__ =="__main__":    

   test_map = {    

   '三千五百二十三' : 3523,    

   '七十五亿八百零七万九千二百零八':7508079208,    

   '四万三千五百二十一':43521,    

   '三千五百二十一':3521,    

   '三千五百零八':3508,    

   '三五六零':3560,    

   '一万零三十':10030,    

   '' : 0,    

   #1 digit 个    

   '零' : 0,    

   '一' : 1,    

   '二' : 2,    

   '三' : 3,    

   '四' : 4,    

   '五' : 5,    

   '六' : 6,    

   '七' : 7,    

   '八' : 8,    

   '九' : 9,    

   #2 digits 十    

   '十' : 10,    

   '十一' : 11,    

   '二十' : 20,    

   '二十一' : 21,    

   #3 digits 百    

   '一百' : 100,    

   '一百零一' : 101,    

   '一百一十' : 110,    

   '一百二十三' : 123,    

   #4 digits 千    

   '一千' : 1000,    

   '一千零一' : 1001,    

   '一千零一十' : 1010,    

   '一千一百' : 1100,    

   '一千零二十三' : 1023,    

   '一千二百零三' : 1203,    

   '一千二百三十' : 1230,    

   #5 digits 万    

   '一万' : 10000,    

   '一万零一' : 10001,    

   '一万零一十' : 10010,    

   '一万零一百' : 10100,    

   '一万一千' : 11000,    

   '一万零一十一' : 10011,    

   '一万零一百零一' : 10101,    

   '一万一千零一' : 11001,    

   '一万零一百一十' : 10110,    

   '一万一千零一十' : 11010,    

   '一万一千一百' : 11100,    

   '一万一千一百一十' : 11110,    

   '一万一千一百零一' : 11101,    

   '一万一千零一十一' : 11011,    

   '一万零一百一十一' : 10111,    

   '一万一千一百一十一' : 11111,    

   #6 digits 十万    

   '十万零二千三百四十五' : 102345,    

   '十二万三千四百五十六' : 123456,    

   '十万零三百五十六' : 100356,    

   '十万零三千六百零九' : 103609,    

   #7 digits 百万    

   '一百二十三万四千五百六十七' : 1234567,    

   '一百零一万零一百零一' : 1010101,    

   '一百万零一' : 1000001,    

   #8 digits 千万    

   '一千一百二十三万四千五百六十七' : 11234567,    

   '一千零一十一万零一百零一' : 10110101,    

   '一千万零一' : 10000001,    

   #9 digits 亿    

   '一亿一千一百二十三万四千五百六十七' : 111234567,    

   '一亿零一百零一万零一百零一' : 101010101,    

   '一亿零一' : 100000001,    

   #10 digits 十亿    

   '十一亿一千一百二十三万四千五百六十七' : 1111234567,    

   #11 digits 百亿    

   '一百一十一亿一千一百二十三万四千五百六十七' : 11111234567,    

   #12 digits 千亿    

   '一千一百一十一亿一千一百二十三万四千五百六十七' : 111111234567,    

   #13 digits 万亿    

   '一万一千一百一十一亿一千一百二十三万四千五百六十七' : 1111111234567,    

   #14 digits 十万亿    

   '十一万一千一百一十一亿一千一百二十三万四千五百六十七' : 11111111234567,    

   #17 digits 亿亿    

   '一亿一千一百一十一万一千一百一十一亿一千一百二十三万四千五百六十七' : 11111111111234567,    

   }    

   for each in test_map:    

       assert(test_map[each] == getResultForDigit(each))

assert的作用是判断getResultForDigit与test_map里的对应key值是否一致

Python中文转数字(整数,小数,纯数字通用版) 原创

2018-11-10 13:14:26

1点赞

Sailist

码龄6年

关注

文章知识点与官方知识档案匹配

Python入门技能树首页概览

211446 人正在系统学习中

打开CSDN APP,看更多技术内容

python转换整数_在Python中将数字转换为整数列表_出门耍的博客-CSDN...

作为Python中数据处理的一部分,有时我们可能需要将给定的数字转换为包含该数字的列表。在本文中,我们将介绍实现这一目标的方法。 具有列表理解 在下面的方法中,我们将str函数应用于给定的数字,然后通过恒等函数转换为整数。最后,我们将结果...

继续访问

python实现将字符串转换为整数_修炼之路的博客_python将字符...

输出: -2147483648 解释: 数字 “-91283472332” 超过 32 位有符号整数范围。 因此返回 INT_MIN (−231) 。 代码实现 正则表达式 可以利用python自带的re库,来实现这个功能 importreclassSolution1(object):defmyAtoi(self,s):INT_...

继续访问

【Python基础语法】 数据类型转换 转字符串 转整数 转小数

转换数据类型的函数一共有3种:str()、int()和float() 函数 说明 注意 str() 将其他数据类型转成字符串 也可以用引号转换 int() 将其他数据类型转成整数 1.文字类和小数类字符串,无法转成整数 2.浮点数转成整数:抹零取整(非四舍五入) float() 将其他数据类型转成浮点数 文字类数据类型无法转成小数 代码: ...

继续访问

Python的时间线

自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。 Python的创始人为荷兰人吉多·范罗苏姆 (Guido van Rossum)。 1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)。 ABC

继续访问

字符串转换整数python_Python将字符串转换为整数_culing2941的博客-CSD...

在本教程中,您将看到在python中将字符串转换为整数的两种方法。 As we know we don’t have to declare the datatype while declaring variables in Python. As python will assign a datatype according to our data stored in th...

继续访问

Python中文数字转阿拉伯数字_Legend_35332332的博客_python中文...

def number_C2E(ChineseNumber): """中文数字转整形""" map = dict(〇=0, 一=1, 二=2, 三=3, 四=4, 五=5, 六=6, 七=7, 八=8, 九=9, 十=10) size = len(ChineseNumber) if size == 0 : return 0 if si...

继续访问

python带e的科学计数法转普通数字

例如,现有浮点数0.00001623,在python中会默认用科学计数法1.623e-05表示。如果只是希望通过print方式显示的时候是普通数字的话,那么格式化下即可。

继续访问

热门推荐 python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10...

说明: 在实际的应用过程中,有的时候可能会遇到字符串的10,需要将字符串的10转换为数字的10 在此记录下,通过int函数转换的过程。 操作过程: 1.将字符串转换为整型的10 >>>str1 = "10" #将一个字符串的10赋给变量str1 >>>type(str1) <class 'str'>...

继续访问

Python 中文数字转数字(阿拉伯)__yuki_的博客_python...

Python 中文数字转数字(阿拉伯) 直接上代码: 方法一: common_used_numerals_tmp ={'零':0,'一':1,'二':2,'两':2,'三':3,'四':4,'五':5,'六':6,'七':7,'八':8,'九':9,'十':10,'百':100,'千':1000,...

继续访问

python字符串转换成整数_在Python中将字符串转换为整数的方法_weixin...

在本文中,我们将向你展示如何将Python字符串转换为整数,可在Linux操作平台上进行。Python中的所有数据类型(包括整数和字符串)都是对象,通常在编写Python代码时,你需要将一种数据类型转换为另一种数据类型,例如,要对表示为字符串的数字进...

继续访问

最新发布 python——数字类型和转换

Python 数字数据类型用于存储数值。数字类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。可以通过- 通常被称为是整型或整数,有正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 long 类型使用,所以 Python3 没有 Python2 的 long 类型。布尔(bool)是整型的子类型。

继续访问

(一行代码)Python 科学计数法转普通数值

Python 科学计数法转普通数值小记 小记 核心主题:通过 ‘%f’ 来将科学计数法转为普通计数 目标:将数值以普通数字形式写入到 ASCII 编码文件中 问题: 1、数值来源于外部,获取到的就是科学计数法 2、懒,只想写一行代码。不想用字符串再做正则匹配,再重新补全数值 解决: 1、获取到的数据如下 [ (-0.00010158695658901706, -3.

继续访问

python中文数字对照表_2019-02-17 Python 中文数字转阿拉伯数字

sum =0 #把中文数字转换为整数 table =str.maketrans('一二三四五六七八九','123456789') #遇到十,百,千这些之前 temp =1 for chrin chi: #print(chr) if chr=="十": sum+=(temp*10) ...

继续访问

在Python 中如何将字符串转换为整数_IT娜娜的博客_python 字...

类似于内置的str()方法,Python语言中有一个很好用的int()方法,可以将字符串对象作为参数,并返回一个整数。 用法示例: # Here age is a string object age ="18" print(age) # Converting a string to an integer ...

继续访问

Python实现单位(亿、万)转数字

文章目录背景测试样例转化测试结果结束语 背景 近日遇到一个需求,要将"xx亿xx万"、"xx亿" 、"xx万"转为数字 本来想着CSDN上肯定有资源,就懒得造轮子,正好找到了一个,链接如下: python|数值单位(个十百千万亿) 转换成 数字 但是发现竟然是尊贵的VIP文章,本着"拒绝哄抬X价,从我做起"的原则,一气之下就花了几分钟写出来 测试样例 valueStrList = ['15亿3710万', '15.04亿', '4762.75万', '771.56'] 转化 def str2value(v

继续访问

Python 单位(亿、万)转数字

需求背景 今天在爬取长沙链接二手房数据的时候,需要将房屋总价和单价转换为数字进行存储 python 功能代码: 实现str 转int,要求:包含'亿'=1e8, 包含'万' = 1e4。功能代码如下: def str2value(valueStr): valueStr = str(valueStr) idxOfYi = valueStr.find('亿') idxOfWan = valueStr.find('万') if idxOfYi != -1 and i...

继续访问

【python】大写金额转换为数字的简单算法

【python】大写金额转换为数字的简单算法 背景: 项目中遇到的人为填写的大写金额需要转换为数字。目前只支持整元未考虑角分的情况。 如: 一亿三千万 -->13000000 十万 -->100000 一百九十万 -->1900000 一万零一十 -->10010 拾亿零叁佰肆拾柒万零贰拾捌 -->1003470028 实现逻辑: 1. 根据数字的读取规则,个十百千万亿,大于10的为单位,等于10的情况要分单位和

继续访问

python强制类型转换为数值型_python数据类型的强制转换

数据类型的强制转换如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去。Number类型的数据转换强制转换为int可以转换的数据类型int 整型float 浮点型bool 布尔型str 字符串(整型)数据转换# 整型(整型转换是原封不动的)print(int(10))# 浮点型(浮点型转成整型按照退一法)print(int(10.999))# 布尔型(布尔型只有两种值,转换成为整...

继续访问

python数据类型转换、将数值转换为以万为单位的数_少儿编程:Python系列25——数据

python整数的表示方法:

1、可以使用字符串str的isdigit方法判断字符串是否是一个仅有数字组成,也就是整数。如果是整数退出while循环,否则继续请求输入。

2、也可以使用try-except语句。如果输入的字符串是整数,那么它可以用用int()函数,转换为int类并退出循环,否则会出现ValueError,可以使用try-except语句捕获ValueError,然后继续请求输入。

基本信息

Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。