题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'tianyi'
__date__ = '2024/3/24 17:29 '
__file__ = 'HW_HJ95.py'
import sys
# 1. 读取输入
num = float(input().rstrip())
#人民币转换
#输入:人民币数字
#输出:中文大写
def convert(num):
if num == 0:
return "零"
num = str(num)
num = num.split(".")
num1 = num[0]
num2 = num[1]
num1 = num1[::-1]
num2 = num2[::-1]
num1 = num1.replace("0","")
num1 = num1[::-1]
num2 = num2.replace("0","零")
num2 = num2[::-1]
num1 = num1.replace("1","壹")
num1 = num1.replace("2","贰")
num1 = num1.replace("3","叁")
num1 = num1.replace("4","肆")
num1 = num1.replace("5","伍")
num1 = num1.replace("6","陆")
num1 = num1.replace("7","柒")
num1 = num1.replace("8","捌")
num1 = num1.replace("9","玖")
#num2 = num2.replace("0","零")
num2 = num2.replace("1","壹")
num2 = num2.replace("2","贰")
num2 = num2.replace("3","叁")
num2 = num2.replace("4","肆")
num2 = num2.replace("5","伍")
num2 = num2.replace("6","陆")
num2 = num2.replace("7","柒")
num2 = num2.replace("8","捌")
num2 = num2.replace("9","玖")
#十百千万亿
if len(num1) == 1:
num1 = num1 + "元"
elif len(num1) == 2:
num1 = num1[0] + "拾" + num1[1] + "元"
elif len(num1) == 3:
num1 = num1[0] + "佰" + num1[1] + "拾" + num1[2] + "元"
elif len(num1) == 4:
num1 = num1[0] + "仟" + num1[1] + "佰" + num1[2] + "拾" + num1[3] + "元"
elif len(num1) == 5:
num1 = num1[0] + "万" + num1[1] + "仟" + num1[2] + "佰" + num1[3] + "拾" + num1[4] + "元"
elif len(num1) == 6:
num1 = num1[0] + "拾" + num1[1] + "万" + num1[2] + "仟" + num1[3] + "佰" + num1[4] + "拾" + num1[5] + "元"
elif len(num1) == 7:
num1 = num1[0] + "佰" + num1[1] + "拾" + num1[2] + "万" + num1[3] + "仟" + num1[4] + "佰" + num1[5] + "拾" + num1[6] + "元"
elif len(num1) == 8:
num1 = num1[0] + "仟" + num1[1] + "佰" + num1[2] + "拾" + num1[3] + "万" + num1[4] + "仟" + num1[5] + "佰" + num1[6] + "拾" + num1[7] + "元"
# elif len(num1) == 9:
# num1 =
#元角分
if len(num1) > 2:
num1 = num1.lstrip("壹")
if num2 == "":
return "人民币" + num1 + "整"
elif len(num2) == 1:
return "人民币" + num1 + num2 + "角"
elif len(num2) == 2:
if num2[1] == "零":
return "人民币" + num1 + num2[0] + "角"
elif num2[0] == "零":
return "人民币" + num1 + num2[1] + "分"
else:
return "人民币" + num1 + num2[0] + "角" + num2[1] + "分"
else:
return "人民币的小数点后" + num[1] + "数据输入错误,目前仅支持到分"
print(convert(num))
[::-1]倒转字符串的意义何在,是否必需
