用户:
落.堕查看:1 回复:1 评论:1 创建时间:2023-01-16T19:23:30
【作品展示】

【作品介绍】
有一点我忘记了,帮忙一下
【作品源代码】
l={
'1':'壹',
'2':'贰',
'3':'叁',
'4':'肆',
'5':'伍',
'6':'陆',
'7':'柒',
'8':'捌',
'9':'玖',
}
y={
0:'元'
1:'拾'
2:'百'
3:'千'
4:'万'
}
msg=('请输入一个数字:')
msg1=list(msg)
danwie=[]
for i in msg:
danwei.append(l[i]
danwie.append(y[i])
daxie=[]
for i in range:
daxie.append(l[i])
daxie.append(y[i])
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cnimport random
def model(num):
string=str(num)
kdist = {"1": "一", "2": "二", "3": "三", "4": "四", "5": "五", "6": "六", "7": "七", "8": "八", "9": "九", "0": "零", }
if len(string) == 1:
return kdist[string]
elif len(string) == 2:
orstring=kdist[string[0]]+"十"
if string[1]=="0":
return orstring
else:
return orstring+kdist[string[1]]
elif len(string) == 3:
orstring = kdist[string[0]]+"百"
if string[1] == "0":
if string[2] == "0":
return orstring
else:
return orstring+"零"+kdist[string[2]]
else:
return orstring+model(string[1]+string[2])#万能的递归
elif len(string) == 4:
orstring = kdist[string[0]]+"千"
if string[1] == "0":
if string[2] == "0":
if string[3] == "0":
return orstring
else:
return orstring+"零"+kdist[string[3]]
else:
return orstring+"零"+model(string[2]+string[3])
else:
return orstring+model(string[1]+string[2]+string[3])
def numm(num):
string = str(num)
klist = ["", "万", "亿", "兆", "京", "垓",
"秭","穰", "沟", "涧", "正", "载", "极",
"恒河沙", "阿僧祇", "那由他", "不可思议",
"无量", "大数", "全仕祥", "古戈尔", "频波罗",
"京杰罗", "不可说不可说转", "超限数", "绝对无限",
"绝对无量","绝对小数", "绝对大数", "绝对超限数",
"绝对恒河沙", "绝对那由他", "绝对不可思议", "绝对古戈尔",
"绝对频波罗", "绝对京杰罗", "绝对有量", "绝对有限",
"绝对界限", "绝对有解", "绝对无解", "绝对有量大海",
"绝对无量大海", "绝对无限小数", "绝对无限大数"]
#未来会继续增加数据,敬请期待哦
string = string[::-1]
#翻转~任性
i = 0
strlist=[]
while ((i+1)*4)-1 <= len(string)-1:#以四个数字为单位,分割字符串
strlist.append(string[(i*4):(i+1)*4])
strlist[i] = strlist[i][::-1]
i+=1
if ((i)*4)-1 != len(string)-1:#查缺补漏哈哈
strlist.append(string[(i*4):len(string)])
strlist[i] = strlist[i][::-1]
strlist.reverse()#该反的到底还是该反的
willreturnlist = [model(strlist[0])]#其实是can'treturnlist
returnstring = ""
for i in range(1, len(strlist)):
v = str(int(strlist[i]))#0014成为14
v = model(v)#小小model,只能处理1~9999
if strlist[i][0] == "0" and v != "零":#零零是不存在的
v = "零"喵#以防万一
if v[0] == "零":
for j in range(i, len(strlist)):#后面是不是全是零,是的话省略!
if int(strlist[j]) != 0:
m = False
break
else:
m = True
if willreturnlist[len(willreturnlist)-1] == "零" or willreturnlist[len(willreturnlist)-1] == "": # 扯了这么多,其实就是问前面那个数串葫芦是不是零(所以我故意打了1mol多余的字doge)
if len(v) == 1:
v = ""#是零为空
else:
v = v[1:len(v)]#非零去头
elif m:
if len(v) == 1:
v = ""
else:
v = v[1:len(v)]
willreturnlist.append(v)#数串改造完毕,装盒
lenk = len(willreturnlist)-1
for i in range(len(willreturnlist)):
returnstring += willreturnlist[i]
if willreturnlist[i] != "" and willreturnlist[i] != "零": # 零万零亿?!不不不
returnstring += klist[lenk-i]
return returnstring
def true_numm(num):
if int(num) == 10:#特殊情况:十到十九,其它是一十(N)
return "十"
for i in range(11, 20):
if int(num) == i:
return "十" + model(str(num)[1])
return numm(str(num))
f = open("试验1.txt", "w", encoding="utf-8")
for i in range(20000):
s = random.randint(0, 10**10)
v = true_numm(s)
print(s, v)
f.write(str(s)+","喵+"\n")
f.close()
f = open("试验2.txt", "w", encoding="utf-8")
for i in range(20001):
s = i
v = true_numm(s)
print(s, v)
f.write(str(s)+","喵+"\n")
f.close()
f = open("试验3.txt", "w", encoding="utf-8")
for i in range(20001):
p = random.randint(79, 159)
s = str(random.randint(1, 9))
for i in range(p):
s += str(random.randint(0, 9))
v = true_numm(s)
print(s, v)
f.write(str(s)+","喵+"\n")
f.close()点赞0
评论