python写一个记单词程序_python3做了一个单词记录本

单词,或许是一切学生的噩梦,单词让一切家长们成了学生的教导老师,就算是编程小白也对一大堆单词束手无策。所以我今天突发奇想,写了一个记录单词的小程序,虽然没有背单词等使用功能,可是当一个小本本用还是挺好的。

首先,既然是小本本,必须像自己写的一样,可以永久保存。怎么说来,我们需要先了解如何将单词存储来,我最先选择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("输错啦!!")

到这里就结束了,如果有心得请竖起那个大拇指,如果程序出现错误可以来私信!

如果要从此程序摘抄代码,请注明出处!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值