美文网首页
python3做了一个单词记录本

python3做了一个单词记录本

作者: Cjiajiagame | 来源:发表于2020-02-01 21:29 被阅读0次

    单词,或许是一切学生的噩梦,单词让一切家长们成了学生的教导老师,就算是编程小白也对一大堆单词束手无策。所以我今天突发奇想,写了一个记录单词的小程序,虽然没有背单词等使用功能,可是当一个小本本用还是挺好的。
    首先,既然是小本本,必须像自己写的一样,可以永久保存。怎么说来,我们需要先了解如何将单词存储来,我最先选择JSON,因为xml我有点受不了。怎们先了解一下JSON的基本用法。

    import json #导入JSON库
    json.dumps(obj) #将数据编码为JSON格式并返回
    json.loads(s) #将JSON的编码格式转成Python格式并返回
    json.load(fp) #从文件读取JSON的编码格式转成Python格式并返回
    json.dump(obj, fp) #将数据编码为JSON格式并写入文件
    

    然后,我们把它示范一下。

    import json
    data = {"B站账号" : "CJIAJIAGAME",} #新建一个object
    file = open("file.json", "w") #新建一个JSON文件
    print(str(data) + json.dumps(data))
    json.dump(data, file)
    file.close()
    

    运行成果:

    ============================== RESTART: D:\xxx.py ==============================
    {'B站账号': 'CJIAJIAGAME'}{"B\u7ad9\u8d26\u53f7": "CJIAJIAGAME"}
    

    JSON文件:

    {"B\u7ad9\u8d26\u53f7": "CJIAJIAGAME"}
    

    大功告成!
    首先,我们首先要建立一个类似于操作系统的框架,虽然不是操作系统,但是有那种我们自主选择的气氛。我在这里给大家示范一个框架,您们可以按照这个来修改:

    modea = input("请选择模式: 1.XXX,2.XXX...")
    if modea == "1":
      ......
    elif modea == "2":
      ......
    else:
      ......
    

    然后,要开始让程序变得比较人性化了。比如像这个样子:

    modeb = input("请选择你要查询中文还是英文")
    

    如果这样的话,就让人有点烦,于是我采用了一种方法,就是像下面这种:

    data = {"chinese" : "中文", "中文": "chinese"}
    

    就是像这种单词为意思,意思为单词的这样写一遍,无论用户是写chinese或者是中文,这样始终都可以直接出结果,虽然文件会大点......
    可是,这种觉得写起来都别扭的样子怎么写呢?下面的代码可以帮你解决:

    data = {}#创建空字典
    a = "chinese"
    b = "中文"
    data[a] = b#{"chinese":"中文"}
    data[data[a]] = a#{ "中文": "chinese"}
    #注意啦,上面的写法就是data的data里chinese的值,这么说来这还是"chinese",因此达到了别扭的写法
    

    然后,我们要让程序具有读写,修改单词的功能。这就要用到文件的I/O。在这个程序里,似乎只用write()函数和read()函数,一个是写,一个是读。比如像下面这样:

    with open("data\\WORDS.json", 'w') as file:
      file.write(json.dumps(data))
    with open("data\\WORDS.json", "r") as file:
      data = json.loads(file.read())
    

    可是,如果写错了怎么办?删!删怎么删?看下面:

    a = "chinese"
    del data[a]
    del data[data[a]]
    

    然后,将这些小知识拼接,整合,形成最终的程序。

    import json
    import os
    
    print("欢迎使用本单词记录软件!")
    while True:
        modea = input("请输入模式:1.查询单词 2.新添单词 3.修改单词 4.删除单词 5.退出")
        data = {}
        with open("data\\WORDS.json", "r") as file:
            data = json.loads(file.read())
        if(modea == "1"):
            word = input("请输入单词或单词对应的意思")
            if word in data:
                input(word + "对应" + data[word])
                os.system("cls")
            else:
                input("您还没记录呢!")
                os.system("cls")
            
        elif(modea == "2"):
            print("@@@@@必须要让单词的意思只有一种,否则查找不到!@@@@@")
            dataa = input("请输入你要记录的单词或单词的意思")
            datab = input("请输入你要记录的单词的意思或单词(与上个相反)")
            if dataa not in data:
                if datab not in data:
                    data[dataa] = datab
                    data[datab] = dataa
                    with open("data\\WORDS.json", 'w') as file:
                        file.write(json.dumps(data))
                    ##下面是多余,但我只是怕程序出错。##
                    with open("data\\WORDS.json", "r") as file:
                        data = json.loads(file.read())
                    input("记录成功!")
                    os.system("cls")
                else:
                    input("已经记录过了!")
                    os.system("cls")
            else:
                input("已经记录过了!")
                os.system("cls")
        elif(modea == "3"):
            print("@@@@@必须要让单词的意思只有一种,否则查找不到!@@@@@")
            dataa = input("请输入你要修改的单词或单词的意思")
            datab = input("请输入你要修改的单词的意思或单词(与上个相反)")
            if dataa in data:
                data[dataa] = datab
                data[datab] = dataa
                with open("data\\WORDS.json", 'w') as file:
                    file.write(json.dumps(data))
                    ##下面是多余,但我只是怕程序出错。##
                with open("data\\WORDS.json", "r") as file:
                    data = json.loads(file.read())
                input("记录成功!")
                os.system("cls")
            else:
                print("你没有记录哦!")
        elif(modea == "4"):
            dataa = input("请输入你要删除的单词或单词的意思")
            if dataa in data:
                del data[data[dataa]]
                del data[dataa]
                with open("data\\WORDS.json", 'w') as file:
                    file.write(json.dumps(data))
                with open("data\\WORDS.json", "r") as file:
                    data = json.loads(file.read())
                input("删除成功!")
                os.system("cls")
            else:
                input("你还没有记录!")
                os.system("cls")
        elif(modea == "5"):
            break
        else:
            print("输错啦!!")
    

    到这里就结束了,如果有心得请竖起那个大拇指,如果程序出现错误可以来私信!
    如果要从此程序摘抄代码,请注明出处!

    相关文章

      网友评论

          本文标题:python3做了一个单词记录本

          本文链接:https://www.haomeiwen.com/subject/qunxxhtx.html