• 关键在于如何解决10100中0的描述，通过判断上一位的值是否为‘’零‘’，具体看代码： list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾'] list2 = ['圆', '拾', '佰', '仟', '萬'] ...
关键在于如何解决10100中0的描述，通过判断上一位的值是否为‘’零‘’，具体看代码：
list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾']
list2 = ['圆', '拾', '佰', '仟', '萬']
money = input("请输入金额:")
money2 = ''
for i in range(0, len(money)):
if int(money[i]) != 0:
money2 += list1[int(money[i])]+list2[len(money)-i-1]
else:
if money2[-1] != "零":
money2 += "零"
if money2[-1] == "零":
print(money2[0:len(money2)-1]+"圆整")
else:
print(money2+"整")

展开全文
• 在会计的时候，用到将数字转换大写，也就是讲数字转为汉字外汇出入金流程https://www.fx61.com/supportclass cnumber:cdict = {}gdict = {}xdict = {}def __init__(self):self.cdict = {1: u'', 2: u'拾', 3: u'佰...
在会计的时候，用到将数字转换为大写，也就是讲数字转为汉字
外汇出入金流程https://www.fx61.com/supportclass cnumber:
cdict = {}
gdict = {}
xdict = {}
def __init__(self):
self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'} # 数字标识符
self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}
def csplit(self, cdata): # 拆分函数，将整数字符串拆分成[亿，万，仟]的list
g = len(cdata) % 4
csdata = []
lx = len(cdata) - 1
if g > 0:
csdata.append(cdata[0:g])
k = g
while k <= lx:
csdata.append(cdata[k:k + 4])
k += 4
return csdata
def cschange(self, cki): # 对[亿，万，仟]的list中每个字符串分组进行大写化再合并
lenki = len(cki)
i = 0
lk = lenki
chk = u''
for i in range(lenki):
if int(cki[i]) == 0:
if i < lenki - 1:
if int(cki[i + 1]) != 0:
chk = chk + self.gdict[int(cki[i])]
else:
chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]
lk -= 1
return chk
def cwchange(self, data):
cdata = str(data).split('.')
cki = cdata[0]
if len(cdata) == 1:
i = 0
chk = u''
cski = self.csplit(cki) # 分解字符数组[亿，万，仟]三组List:['0000','0000','0000']
ikl = len(cski) # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并：前字符串大写+当前字符串大写+标识符
chk = chk + u'整'
else:
i = 0
chk = u''
cski = self.csplit(cki) # 分解字符数组[亿，万，仟]三组List:['0000','0000','0000']
ikl = len(cski) # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并：前字符串大写+当前字符串大写+标识符
# 处理小数部分
ckj = cdata[1]
lenkj = len(ckj)
if lenkj == 1: # 若小数只有1位
if int(ckj[0]) == 0:
chk = chk + u'整'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
else: # 若小数有两位的四种情况
if int(ckj[0]) == 0 and int(ckj[1]) != 0:
chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'
elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
chk = chk + u'整'
elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
return chk
if __name__ == '__main__':
pt = cnumber()
print(pt.cwchange('14524')) # 壹万肆仟伍佰贰拾肆元整
展开全文
• 在会计的时候，用到将数字转换大写，也就是讲数字转为汉字 class cnumber: cdict = {} gdict = {} xdict = {} def __init__(self): self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'} self.xdict = {1:...
在会计的时候，用到将数字转换为大写，也就是讲数字转为汉字
class cnumber:
cdict = {}
gdict = {}
xdict = {}

def __init__(self):
self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'}  # 数字标识符
self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}

def csplit(self, cdata):  # 拆分函数，将整数字符串拆分成[亿，万，仟]的list
g = len(cdata) % 4
csdata = []
lx = len(cdata) - 1
if g > 0:
csdata.append(cdata[0:g])
k = g
while k <= lx:
csdata.append(cdata[k:k + 4])
k += 4
return csdata

def cschange(self, cki):  # 对[亿，万，仟]的list中每个字符串分组进行大写化再合并
lenki = len(cki)
i = 0
lk = lenki
chk = u''
for i in range(lenki):
if int(cki[i]) == 0:
if i < lenki - 1:
if int(cki[i + 1]) != 0:
chk = chk + self.gdict[int(cki[i])]
else:
chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]
lk -= 1
return chk

def cwchange(self, data):
cdata = str(data).split('.')
cki = cdata[0]
if len(cdata) == 1:
i = 0
chk = u''
cski = self.csplit(cki)  # 分解字符数组[亿，万，仟]三组List:['0000','0000','0000']
ikl = len(cski)  # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '':  # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i])  # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i]  # 合并：前字符串大写+当前字符串大写+标识符
chk = chk + u'整'
else:
i = 0
chk = u''
cski = self.csplit(cki)  # 分解字符数组[亿，万，仟]三组List:['0000','0000','0000']
ikl = len(cski)  # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '':  # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i])  # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i]  # 合并：前字符串大写+当前字符串大写+标识符
# 处理小数部分
ckj = cdata[1]
lenkj = len(ckj)
if lenkj == 1:  # 若小数只有1位
if int(ckj[0]) == 0:
chk = chk + u'整'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
else:  # 若小数有两位的四种情况
if int(ckj[0]) == 0 and int(ckj[1]) != 0:
chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'
elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
chk = chk + u'整'
elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
return chk

if __name__ == '__main__':
pt = cnumber()
print(pt.cwchange('14524'))  # 壹万肆仟伍佰贰拾肆元整


展开全文
• 数字转换成中文大写，例如：1->一 ，25->二十五，49->四十九 Parameters ---------- intnumber : TYPE DESCRIPTION. Returns ------- TYPE DESCRIPTION. ''' numberList = ['零','一','二.
def conversionString(intnumber):
'''
把数字转换成中文大写，例如：1->一 ，25->二十五，49->四十九

Parameters
----------
intnumber : TYPE
DESCRIPTION.

Returns
-------
TYPE
DESCRIPTION.

'''
numberList = ['零','一','二','三','四','五','六','七','八','九']
unitList = ["","十","百","千","万",'十万','百万','千万','亿','十亿','百亿','千亿','万亿','兆']
# 转为字符串 获取传入字符串长度
strnumber = str(intnumber)
lennumber = len(strnumber)
# 如果长度等于1 则直接返回对应的各位数字
if lennumber == 1:
return numberList[intnumber]
# 如果不为一 也就不是个位数 则需要获取相关单位
string = ''
for i in range(lennumber):
# print('第{}次,string值为:{}'.format(i,string))
if int(strnumber[i]) != 0:
# 判断万出现的次数 如果多次删除现有的 万 字 防止出现 五十万二万 重复
for unit in ['万','亿']:
if string.count(unit) > 1:
print(string.count(unit))
string = string.replace(unit, '',1)
# 获取当前数字对应的汉字 + 单位
string = string + numberList[int(strnumber[i])]+unitList[lennumber - i - 1]
# 如果前一位也是零 那么直接跳出循环重新执行 //防止
elif int(strnumber[i - 1]) == 0:
continue
else:
# 如果都不是 也就是为 那么则直接加一个零
string = string+numberList[int(strnumber[i])]
# 返回值 // rstrip 删除结尾的所有零
string = string.rstrip('零')
if(intnumber>=10 and intnumber<20):
return  string[1:]
return string


展开全文
• 今天有人在群里问到Python怎么把小写数字转换成中文大写字符，觉得这个问题很有趣，于是想了一下，就开始写代码了。以下是代码，感觉不足的地方就是如果是1001元，那么就会转换 壹仟零佰零拾壹圆，多了个零。这...
• 主要介绍了Python实现把数字转换成中文,一般用于数字金额转中文大写金额,即将阿拉伯数字转换大写中文,需要的朋友可以参考下
• 将阿拉伯数字转换大写数字，主要解决小数点问题，
• 实现代码一 ...import re from decimal import Decimal, ROUND_HALF_UP ZH_HANS_MAP = dict(zip(range(10), "零壹贰叁肆伍陆柒捌玖")) def verbose_price(cost): cost = Decimal(cost).quantize(Decimal('0.00'), ...
• def digital_to_chinese(digital):str_digital = str(digital)chinese = {'1': '壹', '2': '贰', '3': '叁', '4': '肆', '5': '伍', '6': '陆', '7': '柒', '8': '捌', '9': '玖', '0': '零'}chinese2 = ['拾', '佰'...
• python数字转换成中文大写代码#-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级别 def set_to_chinese(money, s): end_map = {10:u'拾',100:u'佰',1000:u'仟',10000:...
• 1. 通过定义一个字典进行阿拉伯数字大写中文的对比储存 2. 将用户的输入首先分割为整数与小数部分分别进行处理 3. 整数部分可以分割为以 4 位数字为一组的列表来进行转换处理，这样便于进行 （兆，亿，万，圆）。...
• 利用Python将阿拉伯数字转化为中文大写，其实最麻烦...每个字符串最多4个字符，然后对每个分位的字符串用大写函数转换成大写，最后合并，这样等于缩减了问题，处理就相对简单了。#!/usr/bin/env python# -*- coding...
• 本文实例为大家分享了python实现人民币大写转换的具体代码，供大家参考，具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换数字从右向左，每4位分成一个...
• 主要介绍了Python实现中文数字转换为阿拉伯数字的方法,涉及Python字符串遍历、转换相关操作技巧,需要的朋友可以参考下
• 题：输入一个数字转换成中文大写的写法可运行的程序(Python 2.7.9)：1 #-*- coding: utf-8 -*- #在python2的py文件里面写中文，必须要添加一行声明文件编码的注释，否则python2会默认使用ASCII编码2 dic_num={"0":...
• 1 '''2 人民币数字大写汉字3 '''45 #coding: utf-86 importwarnings7 from decimal importDecimal89 def cncurrency(value, capital=True, prefix=False, classical=None):10 '''11 参数:12 capital: True 大写...
• 学习python语言不但可以在解决工作中的...阿拉伯数字转换成大写汉字Python代码，一起来看下。def IIf( b, s1, s2):if b:return s1else:return s2def num2chn(nin=None):cs =('零','壹','贰','叁','肆','伍','陆...
• 问题描述：输入一串数字金额，然后打印出它的中文大写。 利用列表下标进行转换。 list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾'] list2 = ['圆', '拾', '佰', '仟', '萬'] money ...
• python数字金额转换中文大写金额编写一函数，将数字金额转换中文大写金额。设最高位考虑到亿，最低位考虑到分（如：数字金额为1023.445，转换中文大写金额为：壹仟零佰贰拾叁元肆角伍分）。输入：一个数字金额...
• '''把一个浮点数分解整数部分和小数部分字符串num 需要被分解的浮点数返回分解出来的整数部分和小数部分。第一个数组元素是整数部分，第二个数组元素是小数部分'''def divide(num):# 将一个浮点数强制类型转换为...
• 每个字符串最多4个字符，然后对每个分位的字符串用大写函数转换成大写，最后合并，这样等于缩减了问题，处理就相对简单了。本来想利用数字形式直接再函数里处理，没想到过百亿后在函数调用时小数...
• 这种情况下，采用拆分法则，将一个大数字，先拆分成整数部分和小数部分，再对整数部分按照仟、万、亿、兆分位拆分为四个字符串组成的List，每个字符串最多4个字符，然后对每个分位的字符串用大写函数转换成大写，...
• 今天有人在群里问到Python怎么把小写数字转换成中文大写字符，觉得这个问题很有趣，于是想了一下，就开始写代码了。以下是代码，感觉不足的地方就是如果是1001元，那么就会转换 壹仟零佰零拾壹圆，多了个零。这...
• 将金额数字转化为大写，格式规范标准。① 当没有零头时自动加xxxx元整 ② 小数能够精确到角、分、厘 ③ 能够处理1亿一下金额数字 ④ 使用方法：numToBig(金额)，返回大写字符串

...

python 订阅