python-archieve-projects/英文词典/English Dict.py

187 lines
4.8 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 英汉小词典的制作
# 学号0204284 姓名:刘燕
import csv
# 模块导入
Dict = {}
words = []
csv_header = ["单词", "释义"]
# 全局变量
def welcome():
# 欢迎
print('*' * 60)
print('{:*^54}'.format("欢迎使用英汉小词典!"))
print('*' * 60)
print('已默认导入预置的词典.csv文件作为词典退出时请保存。')
print("请输入序号以使用该词典的不同功能:")
def add_word():
# 添加单词
print("{:-^60}".format(""))
print("进入添加单词功能输入0回到主菜单。")
while 1:
word = input('请输入单词:')
if word != '0':
inter = input('请输入词义:')
Dict[word] = inter
print("条目添加成功!\n")
continue
else:
print("{:-^60}".format(""))
break
def delete():
# 删除单词
print("{:-^60}".format(""))
print("进入删除单词功能输入0回到主菜单。")
while 1:
word = input('要删除的单词是:')
if word != '0':
if word in Dict:
print('目标单词:{},对应释义:{}'.format(word, Dict[word]))
Dict.pop(word)
print('已删除\n')
continue
else:
print('该单词不在词典中。')
continue
else:
print("{:-^60}".format(""))
break
def search():
# 搜索
print("{:-^60}".format(""))
print("进入查询单词功能输入0回到主菜单。")
while 1:
word = input('要查询的单词是:')
if word != '0':
if word in Dict:
print("{}的释义是:{}\n".format(word, Dict[word])) # 完整检索
continue
else:
fuzzy_words = []
print("\n该单词不在词典中,正在尝试联想查询...")
for i in Dict:
if word[0:2] == i[0:2]: # 模糊检索 首二字相同生成模糊列表
fuzzy_words.append(i)
fuzzy_search(fuzzy_words)
continue
else:
print("{:-^60}".format(""))
break
def fuzzy_search(ls):
# 查询模糊列表
if len(ls) != 0:
for i in ls:
print("{}: {}".format(i, Dict[i]))
else:
print("")
else:
print("不存在近似单词。\n")
def modify():
print("{:-^60}".format(""))
print("进入修改单词功能输入0回到主菜单。")
while 1:
word = input('要修改的单词为:')
if word != '0':
if word in Dict:
inter = input('请输入要修改为的释义:')
Dict[word] = inter
print("修改成功,单词'{}'的释义已修改为'{}'\n".format(word, Dict[word]))
continue
else:
print("{:-^60}".format(""))
break
def view():
print("词典全部条目:")
print("{:-^60}".format(""))
if len(Dict) != 0:
for i in Dict:
print("{}: {}".format(i, Dict[i]))
else:
print("词典为空。")
print("{:-^60}".format(""))
def csv_save():
word = list(Dict.keys())
ys = list(Dict.values())
for i in range(len(Dict)):
words.append([word[i], ys[i]])
with open("词典.csv", "w") as f:
w = csv.writer(f)
w.writerow(csv_header)
for j in range(len(words)):
w.writerow(words[j])
def import_dict():
with open("词典.csv", "r", encoding='utf-8') as f:
w = csv.DictReader(f)
for row in w:
Dict[row['单词']] = row['释义']
def IO():
print("{:-^60}".format(""))
print("所有文件皆为同目录下的'词典.csv',每次使用过程只能进行一次导出操作,否则数据会混乱。")
print("1.导出为CSV词典\n2.导入CSV作为词典")
num = eval(input('请输入功能序号:'))
if num == 1:
csv_save()
print("{:-^60}".format(""))
if num == 2:
import_dict()
print("{:-^60}".format(""))
def using():
while 1:
print("1.添加条目\n2.删除条目\n3.查询单词\n4.修改条目\n5.查看词典\n6.导入导出\n0.退出词典")
num = eval(input('请输入功能序号:'))
if num == 0:
break
if num == 1:
add_word()
if num == 2:
delete()
if num == 3:
search()
if num == 4:
modify()
if num == 5:
view()
if num == 6:
IO()
def main():
welcome()
try:
using()
except SyntaxError:
print('输入有误,请重新输入\n')
using()
if __name__ == '__main__':
import_dict()
main()