输入数字输出中文大写python_阿拉伯数字转换成中文大写,中文货币的表达方式 python...

最近在qq群经常看到一个题目,网上查找资料发现,有人实现了一半内容,都是在处理0的问题上卡住了,自己就尝试用刚开始学习的python写了一下。python处理这个问题还是比较方便。

题目:

165916_7JiZ_2656536.jpg

代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#转换

import re

chd = {' ':'m','0':'零','1':'壹','2':'贰','3':'叁','4':'肆','5':'伍','6':'陆','7':'柒','8':'捌','9':'玖'}

und = {'S':'拾','B':'佰','Q':'仟','W':'万','Y':'亿'}

#判断输入内容(首位不为零的整数)

ips = raw_input('Please input a number: ')

while ips[0] == '0':

ips = raw_input('Wrong,the first non-zero: ')

else:

while ips.isdigit():

break

else:

ips = raw_input('Wrong,please input a number: ')

if len(ips) <= 9:

#输出9位字符,右对齐,补空格

ips = ips.rjust(9)

#转换成大写

ops = chd[ips[0]]+und['Y']+chd[ips[1]]+und['Q']+chd[ips[2]]+und['B']+chd[ips[3]]+und['S']+chd[ips[4]]+und['W']+chd[ips[5]]+und['Q']+chd[ips[6]]+und['B']+chd[ips[7]]+und['S']+chd[ips[8]]+'元'

#无用的数字位替换为空

ops = re.sub('(m...)+','',ops)

#处理零

ops = re.sub('零元$','元',ops)

ops = re.sub('零万','万',ops)

ops = re.sub('(零...)+','零',ops)

ops = re.sub('零万','万',ops)

ops = re.sub('零元$','元',ops)

print ops

else:

print 'The number is too big.'

测试结果:

170050_umsx_2656536.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值