美文网首页
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做了一个单词记录本

    单词,或许是一切学生的噩梦,单词让一切家长们成了学生的教导老师,就算是编程小白也对一大堆单词束手无策。所以我今天突...

  • 每日速记单词记录本

    able 形容词后缀 value缩写val ion 名词后缀 cy名词后缀 con(完全) ...

  • 每日速记单词记录本 - 草稿

    able 形容词后缀 value缩写val ion 名词后缀 cy名词后缀 con(完全) ...

  • 每日速记单词记录本 - 草稿 - 草稿

    able 形容词后缀 value缩写val ion 名词后缀 cy名词后缀 con(完全) ...

  • 2018-09-28

    背单词 复习单词 做了一套英语卷子

  • 小小记录本

    我们家的电脑桌上放着一本小小的记录本,这个记录本记录着女儿每天主要做的事情。 那么,女儿每天都做了什么事情呢? 有...

  • python3常用的内置数据结构

    针对python3的内置数据结构,做了个小结,包括概念、内置方法、示例等内容。 python3的内置数据结构总体分...

  • python3 做接口测试

    利用 python3 做了一个接口测试,实现了如下功能: 将字段存放于 tuples 中 对 tuples 进行排...

  • python3的decode()与encode()

    对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰的区分。...

  • 每日复盘2

    今天我做了什么? 1,打卡极光单词,TeacherGwen单词,Ai公众号单词 2,完成成功日记 3,keep健身...

网友评论

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

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