暂时只写到千位,感兴趣的童鞋可以再优化优化,俺也只是试试看
'''
@Project :pythonProject2
@File :Calculate.py
@IDE :PyCharm
@Author :我心
Code content:输入连续的数字,产生中文的结果,如12输出三,89输出十七
@Date :2021/9/27 21:17
'''
# 定义一个函数,返回一个数的最高位整数,如1020返回1000
def getNum(number):
count=1
t=0
while t>=10 or t<1:
t=number//count
count=count*10
return count//10
var = input("请输入连续的数字:")
num = list(var) # 转化成序列
Ch=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾','佰','仟']
sum=0
for i in num:
i=eval(i)
sum += i
k=getNum(sum) # 当前位
while sum>0:
cnt=sum//k
print(f'{Ch[cnt]}',end='') #输出前导
# 输出后导
if 10<=k<100:
print('拾',end='')
elif 100<=k<1000:
print('佰',end='')
elif 1000<=k<10000:
print('佰',end='')
sum%=k # 移位
k//=10