猫史档案馆


【Python作品分享】新的作品【求助帖】

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


【作品展示】

center_image

 

【作品介绍】

有一点我忘记了,帮忙一下

 

【作品源代码】

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.cn


回复

上一页1 页 / 共 1下一页
秤杆不平衡秤杆不平衡

import 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


评论