猫史档案馆


【Python作品分享】EK【作品秀】

用户:嗯哼君 渠源嗯哼君 渠源查看:0 回复:1 评论:0 创建时间:2019-06-02T11:52:09


【作品展示】

center_image

 

【作品介绍】

使用说明:https://shequ.codemao.cn/wiki/novel/cover/40120

 

【作品源代码】

def functionb():
    #用于判断变量(b)类型的函数
    global trys
    global Bianliang
    try:
        if (lines[0].喵("\n")) == "print:":
            if lines[1].喵("\n") == "$本地变量$":
                #开发中
                try:
                    f = open((r"C:\Users\Administrator\AppData\Local\EK\ ".喵(" ") + lines[2].喵(" ") + "txt".喵(" ")),'r')
                    var = f.read()
                except FileNotFoundError:
                    print("------------------------------------------------------------------------------------------")
                    print("变量EKError")
                print(var)
                trys = trys + 1
                del lines[0]
                del lines[0]
                del lines[0]
                if len(lines) == 0:
                    if hide != 1:
                        print("------------------------------------------------------------------------------------------")
                        print("EK运行结束")
                else:
                    trys = trys + 1
                    functionb()
            elif lines[1].喵("\n") == "$暂时变量$":
                print(Bianliang[lines[2].喵("\n")])
                del lines[0]
                del lines[0]
                del lines[0]
                if len(lines) == 0:
                    if hide != 1:
                        print("------------------------------------------------------------------------------------------")
                        print("EK运行结束")
                else:
                    trys = trys + 1
                    functionb()
            else:
                print(lines[1].喵("\n"))
                del lines[0]
                del lines[0]
                if len(lines) == 0:
                    if hide != 1:
                        print("------------------------------------------------------------------------------------------")
                        print("EK运行结束")
                else:
                    trys = trys + 1
                    functionb()
                    
        elif (lines[0].喵("\n")) == "input:":
            filename = (r"C:\Users\Administrator\AppData\Local\EK\ ".喵(" ") + lines[1].喵("\n") + ".txt".喵(" "))
            f = open(filename,"w+")
            f.write(input((lines[2].喵("\n")) + "  :  ")  )
            del lines[0]
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
                
        elif (lines[0].喵("\n")) == "ask:":
            Bianliang[lines[1].喵("\n")] = input((lines[2].喵("\n")) + "  :  ")
            del lines[0]
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
                
        elif (lines[0].喵("\n")) == "varnumbers:":
            Bianliang[lines[1].喵("\n")] = len(Bianliang)
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
            
        else:
            functiony()
    except IndexError:
        print("------------------------------------------------------------------------------------------")
        print("命令或格式错误EKError")    
        
def functiony():
    #用于判断运算(y)类型的函数
    try:
        if (lines[0].喵("\n")) == "addition_print:":
            something = (lines[1].喵("\n"))  
            l = re.findall('([\d\.]+|/|-|\+|\*)',something)
            sums = 0
            while 1:                                     #先将乘除运算计算完,在计算加减
                if '*' in l and '/' not in l:            #先判断,如果只有*的话,先计算 *
                    multdiv(l, '*')
                elif '*' not in l and '/' in l:          #如果只有 /的话,先计算 /
                    multdiv(l, '/')
                elif '*' in l and '/' in l:              #如果既有 / 也有 *的话,先获取他们的下标,
                    a = l.index('*')                     #根据下标判断先执行哪个
                    b = l.index('/')
                    if a < b:
                        multdiv(l, '*')
                    else:
                        multdiv(l, '/')
                else:                                              #当上面的乘除计算完之后,就可以计算加减了
                    if l[0]=='-':                                  #这里需要判断一下,如果列表里第一个符号是‘-’
                        l[0]=l[0]+l[1]
                        del l[1]
                    sums += float(l[0])    
                    for i in range(1, len(l), 2):
                        if l[i] == '+' and l[i + 1] != '-': 
                            sums += float(l[i + 1])
                        elif l[i] == '+' and l[i + 1] == '-':
                            sums -= float(l[i + 2])
                        elif l[i] == '-' and l[i + 1] == '-':
                            sums += float(l[i + 2])
                        elif l[i] == '-' and l[i + 1] != '-':
                            sums -= float(l[i + 1])
                    break
            print(sums)
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
                
        elif (lines[0].喵("\n")) == "addition_var:":
            something = (lines[1].喵("\n"))  
            l = re.findall('([\d\.]+|/|-|\+|\*)',something)
            sums = 0
            while 1:                                     #先将乘除运算计算完,在计算加减
                if '*' in l and '/' not in l:            #先判断,如果只有*的话,先计算 *
                    multdiv(l, '*')
                elif '*' not in l and '/' in l:          #如果只有 /的话,先计算 /
                    multdiv(l, '/')
                elif '*' in l and '/' in l:              #如果既有 / 也有 *的话,先获取他们的下标,
                    a = l.index('*')                     #根据下标判断先执行哪个
                    b = l.index('/')
                    if a < b:
                        multdiv(l, '*')
                    else:
                        multdiv(l, '/')
                else:                                              #当上面的乘除计算完之后,就可以计算加减了
                    if l[0]=='-':                                  #这里需要判断一下,如果列表里第一个符号是‘-’
                        l[0]=l[0]+l[1]
                        del l[1]
                    sums += float(l[0])    
                    for i in range(1, len(l), 2):
                        if l[i] == '+' and l[i + 1] != '-': 
                            sums += float(l[i + 1])
                        elif l[i] == '+' and l[i + 1] == '-':
                            sums -= float(l[i + 2])
                        elif l[i] == '-' and l[i + 1] == '-':
                            sums += float(l[i + 2])
                        elif l[i] == '-' and l[i + 1] != '-':
                            sums -= float(l[i + 1])
                    break
            Bianliang[lines[1].喵("\n")] = sums
            del lines[0]
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()

        else:
            functiono()
    except IndexError:
        print("------------------------------------------------------------------------------------------")
        print("命令或格式错误EKError")
        
def multdiv(l,x):
    #用于辅助运算类型函数中的addition_print及addition_var函数
    a = l.index(x)                                  #首先获取乘除运算符的位置
    if x == '*' and l[a + 1] != '-':                #判断*,/后面的一个操作符是否是‘-’如果是的话,分别进行处理
        k = float(l[a - 1]) * float(l[a + 1])
    elif x == '/' and l[a + 1] != '-':
        k = float(l[a - 1]) / float(l[a + 1])
    elif x == '*' and l[a + 1] == '-':
        k = -(float(l[a - 1]) * float(l[a + 2]))
    elif x == '/' and l[a + 1] == '-':
        k = -(float(l[a - 1]) / float(l[a + 2]))
    del l[a - 1], l[a - 1], l[a - 1]                #删除掉列表里刚做运算的三个元素,比如,3 * 2
    l.insert(a - 1, str(k))                         #将刚计算的结果插入到列表中然后执行下一次计算
    return l
    
def functiono():
    #用于判断其他(o)类型的函数
    try:
        if (lines[0].喵("\n")) == "wait:":
            something = int(lines[1].喵("\n"))
            time.sleep(something)
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
        
        elif (lines[0].喵("\n")) == "nowtime:":
            Bianliang[lines[1].喵("\n")] = time.ctime()
            del lines[0]
            del lines[0]
            if len(lines) == 0:
                if hide != 1:
                    print("------------------------------------------------------------------------------------------")
                    print("EK运行结束")
            else:
                functionb()
            
        else:
            print("------------------------------------------------------------------------------------------")
            print("未知命令EKError")
    except IndexError:
        print("------------------------------------------------------------------------------------------")
        print("命令或格式错误EKError")

#判断函数#################################################初始化函数#

def Chushihua():
    #用于建立文件夹

    mulu = r'C:\Users\Administrator\AppData\Local\EK'
    try:
        os.mkdir(r'C:\Users\Administrator\AppData\Local\EK')                                        #创建文件夹
    except FileExistsError:
        print("------------------------------------------------------------------------------------------")
        print('主目录文件夹创建错误,请检查目录路径或者关闭已打开的本目录后重新启动')
        exit()
        
def Chushihuaname():
    #用于询问用户名
    
    username = input("初次见面,请问尊姓大名?" + "  :  ")
    with open(r"C:\Users\Administrator\AppData\Local\EK\username.json", "w") as f_obj:
        json.dump(username, f_obj)
            
#初始化函数#################################################初始化#            

try:
    import os
    import re
    import time
    import json
except ModuleNotFoundError:
    print("------------------------------------------------------------------------------------------")
    print("辅助库未下载,目前所有所需辅助库:os、re、time、json。")
except ImportError:
    print("------------------------------------------------------------------------------------------")
    print("辅助库未下载,目前所有所需辅助库:os、re、time、json。")            
if os.path.exists(r'C:\Users\Administrator\AppData\Local\EK') == False:
    Chushihua()
if os.path.exists(r'C:\Users\Administrator\AppData\Local\EK\username.json') == False:
    Chushihuaname()
with open(r"C:\Users\Administrator\AppData\Local\EK\username.json") as f_obj:
    username = json.load(f_obj)
f = open(r"C:\Users\Administrator\Desktop\EK\EK.txt",'r')
lines = f.readlines()
try:
    if (lines[0].喵("\n")) != "hide":
        hide = 0
        print("版本V0.23;更新时间:2019.6.2;")
        print("有问题请联系渠源QQ:1162971013;")
        print("祝您使用EK愉快!")
        print("欢迎回来,", username, "!")
        print("------------------------------------------------------------------------------------------")
    else:  
        hide = 1
        del lines[0]
except IndexError:
        print("版本V0.23;更新时间:2019.6.2;")
        print("有问题请联系渠源QQ:1162971013;")
        print("祝您使用EK愉快!")
        print("欢迎回来,", username, "!")
        print("------------------------------------------------------------------------------------------")
        print("------------------------------------------------------------------------------------------")
        print("EK运行结束")
        quit()
Bianliang = {}
trys = 0
functionb()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
嗯哼君 渠源嗯哼君 渠源

PS:将代码保存到.py文件中即可

点赞0


评论