今天改进爬虫的时候有这样的需求,如果是文字的数字把他转化成数字存储。

然后百度了一下没什么能看的博客。

其实挺无奈的,搜出来的博客全是一样的代码,有的图都是COPY,尤指CSDN,博客质量大多很差。怀疑博主转的时候试了没?

这样COPY还不如不发,恶心。

于是自己写了代码,目前测试几例没什么问题,如果出现不规则的如”一二三四五万“这种会出现问题,不过这种本来就不符合规范

代码如下:

# 18.11.1更新,加入对诸如'人民币贰仟陆佰玖拾陆万陆仟零捌拾元玖角贰分'这种小数的判断

 # -*- coding=utf-8 -*-
# 18.10.29
# 文字数字(汉语)转数字
# 18.11.1
# 更新对'人民币贰仟陆佰玖拾陆万陆仟零捌拾元玖角贰分'这种小数的判断 cn_sum = {
'〇': '', '一': '', '二': '', '三': '', '四': '', '五': '', '六': '', '七': '', '八': '', '九': '', '零': '',
'壹': '', '贰': '', '叁': '', '肆': '', '伍': '', '陆': '', '柒': '', '捌': '', '玖': '', '貮': '', '两': '',
} cn_unit = {
'十': 10,
'拾': 10,
'百': 100,
'佰': 100,
'千': 1000,
'仟': 1000,
'万': 10000,
'萬': 10000,
'亿': 100000000,
'億': 100000000,
'兆': 1000000000000,
'角': 0.1,
'分': 0.01
} def chn_to_sum(chn):
# 传入字符串
sum = 0
lis = []
flo = False
str_flo = ''
for i in chn:
if flo:
if i in cn_sum:
str_flo += cn_sum[i]
if i in cn_unit:
lis.append(cn_unit[i])
else:
if i == '点':
flo = True
if i in cn_sum:
lis.append(cn_sum[i])
if i in cn_unit:
lis.append(cn_unit[i])
for k in range(len(lis)):
if k == len(lis)-1:
if str_flo:
sum += float('.'+str_flo)
if type(lis[k]) == str:
sum = sum+int(lis[k])
if type(lis[k]) in [int, float]:
if lis[k] > sum:
sum = (sum+int(lis[k-1]))*lis[k]
else:
sum = sum + (int(lis[k-1])*lis[k]) return round(sum, 2)

发现问题请提醒我,希望可以帮到你

将文字数字转阿拉伯数字(Python)的更多相关文章

  1. C# 阿拉伯数字转换为中文数字/中文数字转换为阿拉伯数字

    项目中经常会格式化数据,转换数字的使用情况比较多,记录一下数字转换的方法! 如果需要转换为繁体中文,将数组里的汉字换成繁体中文即可. 1.阿拉伯数字转换为中文数字 /// <summary> ...

  2. Python 中文数字转阿拉伯数字

    #只能转数字,传参中包含非数字会错. def t(str): zhong={'零':0,'一':1,'二':2,'三':3,'四':4,'五':5,'六':6,'七':7,'八':8,'九':9}; ...

  3. Python 中文(大写)数字转阿拉伯数字(转)

    # constants for chinese_to_arabic CN_NUM = { '〇' : 0, '一' : 1, '二' : 2, '三' : 3, '四' : 4, '五' : 5, ' ...

  4. 猜数字游戏--基于python

    """题目:练习使用python写一个猜数字的游戏,数字范围0-100,每次猜错,需要给出缩小后的范围,每个人只有10次的猜测机会,猜测机会用完游戏结束!"&q ...

  5. 使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字

    课程实验:编程读汉字点阵字库,把自己的名字和学号叠加到图片的右下位置. 主要步骤分为三部分 第一部分:读取图片(文件读取) 第二部分:读取文字并从字库中提取相应的编码(字库的存储原理) 第三部分:将相 ...

  6. 【LeetCode】面试题62. 圆圈中最后剩下的数字 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 约瑟夫环 日期 题目地址:https://leetco ...

  7. Java实现中文数字转换为阿拉伯数字

    /** * 中文數字转阿拉伯数组[十万九千零六十 --> 109060] * @author 雪见烟寒 * @param chineseNumber * @return */ @Suppress ...

  8. 数字和表达式(python)

    >>>2+2 4 >>>1/2#(注:3.0版本之前是这样的,整数除法) >>>1.0/2.0 0.5 >>>1.0/2 0.5 ...

  9. 语音转文字小工具开发Python

    # -*- coding: utf- -*- import requests import re import os import time from aip import AipSpeech fro ...

随机推荐

  1. OZCode

    OZCode是一款辅助调试工具,调试linq很方便有点重量级,导致整个项目运行很慢,但是功能很强大. OZCode界面如下:

  2. Hyperic-Sigar简介——检测与监控

    http://blog.csdn.net/liyong199012/article/details/20302761 Hyperic-Sigar是一个收集系统各项底层信息的工具集.他有如下特点: 1. ...

  3. (一)python的前世今生

    一:Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)(目前还活着),诞生于1989年,是一个脚本解释程序,由于python语言结构优美,清晰简单,随着人工智能 ...

  4. 20155324 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告

    20155324 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...

  5. python 中: lambda

    lambda 定义了一个匿名函数,是代码更简洁 lambda x:x+1和def g(x): return x+1是相同的哦. python 中的map,filter, reduce 函数为序列内置函 ...

  6. 关于PHP中的全局变量global和$GLOBALS的不同区分

    1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量,函数体 ...

  7. PHP调用API接口实现天气查询功能

    天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口.百度天气预报接口.google天气接口.Yahoo天气接口等等. 1.查询方式 根据地名查询各城市天气 ...

  8. Linux静默安装matlab

    对linux系统不是很熟,所有装起来有点费劲.来来回回折腾了二三天,查了很多攻略,但按照步骤老是报错,大体上各人设备不同.系统不同.环境设置不同,总是会多多少少略有差异. 一 基本配置 linux系统 ...

  9. Web获取客户端物理MAC地址(ocx插件)ActiveX控件

    主要是通过ActiveX控件 从本地获取到MAC地址,传入到浏览器打开的网页中,再提交到服务器. 具体详解与步骤看文档中: 文件实例包下载 DotNetFX 文件夹附件文件:(可能安装时需用) dot ...

  10. jstl-----之<set>标签

    <table id="attachtab" border="0" cellpadding="0" cellspacing=" ...