前言:
现在同学们对“python把int转为str”可能比较关切,大家都需要分析一些“python把int转为str”的相关知识。那么小编同时在网摘上收集了一些对于“python把int转为str””的相关知识,希望兄弟们能喜欢,兄弟们一起来学习一下吧!大家好,我是皮皮。
一、前言
前几天在Python黄金群【莫生气】问了一个Python数据处理的问题,需求如下:
大佬们,请教一个问题,2274587.84如何快速的转换为大写:贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分?有没有工具或者网页啥的?不一定要Python实现。
使用百度上查到的代码,似乎不太好用,
def num2chinese(num): chinese_num = ["零", "壹", "贰", "参", "肆", "伍", "陆", "柒", "捌", "玖"] chinese_unit = ["", "拾", "佰", "仟", "万", "亿"] num_str = str(num) num_len = len(num_str) chinese_str = '' zero_flag = False for i in range(num_len): j = int(num_str[i]) if i == 8: zero_flag = True else: if zero_flag: chinese_str += chinese_num[0] zero_flag = False chinese_str += chinese_num[j] + chinese_unit[num_len - i - 1] if zero_flag: chinese_str += chinese_num[0] return chinese_strif __name__ == '__main__': print(num2chinese(135496))
代码运行之后出错,和实际预期的结果还是有差距的。
而且一旦假如小数,比方说有角分这样的,直接报错了。
二、实现过程
后来在讯飞星火上问到了一个答案,代码如下所示:
def num_to_chinese(num): chinese_num = { 0: "零", 1: "一", 2: "二", 3: "三", 4: "四", 5: "五", 6: "六", 7: "七", 8: "八", 9: "九" } chinese_unit = ["", "十", "百", "千", "万", "亿"] chinese_str = "" unit_index = 0 for i in str(num): if i.isdigit(): chinese_str += chinese_num[int(i)] + chinese_unit[unit_index] unit_index += 1 else: chinese_str += i return chinese_str.strip("零") or "零"num = 2274587.84result = num_to_chinese(num)print(result)
代码花里胡哨的,但是解决不了问题,一跑就出现数组越界的错误,尝试调教,说他错了,他仍然给你旧代码,甚至还给你一个不沾边的代码,整无语了。
后来问了Zelinna,给的代码看上去像那么回事,代码如下:
这个需求可以使用Python的数字转中文工具——`chinese_converter`来实现,以下是用Python代码实现这个功能的示例。```python# 首先需要安装 chinese_converter 包,运行以下指令即可# pip install chinese_converterfrom chinese_converter import num_to_chinesenum = 2274587.84num_str = str(int(num)) # 转换为整型并转换为字符串num_chinese_upper = num_to_chinese(num_str, False, True) + '元' # 转换为大写并加上“元”# 去掉无效小数位decimal = round(num - int(num), 2) # 取小数位并保留两位if decimal > 0: decimal_str = str(decimal)[2:] # 转换小数部分的数字 for i, d in enumerate(decimal_str): num_chinese_upper += num_to_chinese(int(d)) + ('角' if i == 0 else '分')print(num_chinese_upper)# 输出结果为:贰佰贰拾柒万肆仟五佰八拾七元捌角四分。# 运行成功可以将任意数字转为大写中文数字。如果你在开发中需要经常进行数字和中文之间的转换,这个工具可以提高你的工作效率。
不过安装这个库之后,竟然报错,说里边对应的方法竟然不存在,这。。。很尴尬,还占用我内存,反手就uninstall掉了。
最后用了Excel设置单元格格式,好家伙,找到数据,然后右键-->设置单元格格式-->特殊-->人民币大写,就完事了,而且多行数据的话,直接一个填充就完事了,比问C老师,Z老师,K老师快得多!
顺利地解决了粉丝的问题。
后来【甯同学】,还给了一个方法。搜狗输入法,输入v+数字直接就是了。
三、总结
大家好,我是皮皮。这篇文章主要盘点了一个Python实战的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【莫生气】提问,感谢【巭孬嫑勥烎】给出的思路和代码解析,感谢【Ineverleft】、【瑜亮老师】等人参与学习交流。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
标签: #python把int转为str