将文字数字转阿拉伯数字(Python)
今天改进爬虫的时候有这样的需求,如果是文字的数字把他转化成数字存储。
然后百度了一下没什么能看的博客。
其实挺无奈的,搜出来的博客全是一样的代码,有的图都是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)的更多相关文章
- C# 阿拉伯数字转换为中文数字/中文数字转换为阿拉伯数字
项目中经常会格式化数据,转换数字的使用情况比较多,记录一下数字转换的方法! 如果需要转换为繁体中文,将数组里的汉字换成繁体中文即可. 1.阿拉伯数字转换为中文数字 /// <summary> ...
- Python 中文数字转阿拉伯数字
#只能转数字,传参中包含非数字会错. def t(str): zhong={'零':0,'一':1,'二':2,'三':3,'四':4,'五':5,'六':6,'七':7,'八':8,'九':9}; ...
- Python 中文(大写)数字转阿拉伯数字(转)
# constants for chinese_to_arabic CN_NUM = { '〇' : 0, '一' : 1, '二' : 2, '三' : 3, '四' : 4, '五' : 5, ' ...
- 猜数字游戏--基于python
"""题目:练习使用python写一个猜数字的游戏,数字范围0-100,每次猜错,需要给出缩小后的范围,每个人只有10次的猜测机会,猜测机会用完游戏结束!"&q ...
- 使用opencv调用24*24点阵字库和8*16ASCII字库在图片显示文字数字
课程实验:编程读汉字点阵字库,把自己的名字和学号叠加到图片的右下位置. 主要步骤分为三部分 第一部分:读取图片(文件读取) 第二部分:读取文字并从字库中提取相应的编码(字库的存储原理) 第三部分:将相 ...
- 【LeetCode】面试题62. 圆圈中最后剩下的数字 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 约瑟夫环 日期 题目地址:https://leetco ...
- Java实现中文数字转换为阿拉伯数字
/** * 中文數字转阿拉伯数组[十万九千零六十 --> 109060] * @author 雪见烟寒 * @param chineseNumber * @return */ @Suppress ...
- 数字和表达式(python)
>>>2+2 4 >>>1/2#(注:3.0版本之前是这样的,整数除法) >>>1.0/2.0 0.5 >>>1.0/2 0.5 ...
- 语音转文字小工具开发Python
# -*- coding: utf- -*- import requests import re import os import time from aip import AipSpeech fro ...
随机推荐
- 测试四则运算2:Right-BICEP
n6个值得测试的具体部位,他们能够提高你的测试技巧 nRight-结果是否正确? nB-是否所有的边界条件都是正确的? nI-能查一下反向关联吗 nC-能用其他手段交叉检查一下结果吗? nE-你是否可 ...
- C# CancellationTokenSource 终止线程 CancellationTokenSource实现对超时任务的取消
C# 使用 CancellationTokenSource 终止线程 使用CancellationTokenSource对象需要与Task对象进行配合使用,Task会对当前运行的状态进行控制(这个不用 ...
- Debian Security Advisory(Debian安全报告) DSA-4410-1 openjdk-8 security update
Debian Security Advisory(Debian安全报告) DSA-4410-1 openjdk-8 security update Package :openjdk-8 CVE ID: ...
- 第25月第11天 deeplearning.ai
1.网易云课堂 深度学习工程师 点击进入课程地址(英文)(收费) 点击进入课程地址(中文)(免费) 第一门 神经网络和深度学习 第二门 改善神经网络 第三门 结构化机器学习项目 第四门 卷积神经网络 ...
- 第21月第7日 数据结构 b+树
1.B+树 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等. http://blog.codingla ...
- 5-5 re模块 正则表达式
1,正则表达式 正则表达式,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字 ...
- sql server 2008 windows验证改混合登陆中SqlServer身份验证用户名密码
安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本主题介绍如何在安装后更改安全模式. 如果在安装过程中选择“ ...
- Spring Cloud学习资料
博客 1.跟我学Spring Cloud 2.周立|Spring Cloud 3.Spring Cloud基础教程(强烈推荐) 4.Spring Cloud系列文章 5.forezp|史上最简单的 S ...
- springfox-swagger2
简介 springfox是通过注解的形式自动生成API文档,利用它,可以很方便的书写restful API: swagger主要用于展示springfox生成的API文档: 依赖 <depend ...
- 【.net ajax显示后台返回值】
1..net ajax显示后台返回值 <script> $(document).ready(function () { $("#btn&quo ...