Python打造你的专属生词本:功能全面、高效易用的代码实现360


学习一门外语,记单词是必不可少的环节。市面上有很多生词本应用,但它们的功能或多或少存在不足,而且很多都是收费的。如果你熟悉Python编程,不妨自己动手,打造一个专属的生词本,满足你个性化的需求。本文将带你一步步实现一个功能全面、高效易用的Python生词本,涵盖单词添加、查询、编辑、删除、复习等核心功能,并利用文件存储持久化数据。

我们将使用Python内置的模块以及一些常用的第三方库来实现这个生词本。主要的模块包括json(用于数据序列化和反序列化)、datetime(用于记录学习时间)以及一些用于用户交互的模块。为了简化用户界面,我们选择使用简单的命令行界面(CLI)。如果你熟悉GUI框架(如Tkinter、PyQt),可以根据需要进行界面升级。

首先,我们需要定义一个单词类来存储单词信息。每个单词条目应该至少包含单词本身(word)、词义(meaning)、例句(example)以及学习时间(learned_time)。我们可以这样定义:```python
import json
from datetime import datetime
class Word:
def __init__(self, word, meaning, example=""):
= word
= meaning
= example
self.learned_time = ().strftime("%Y-%m-%d %H:%M:%S")
def __str__(self):
return f"单词:{}词义:{}例句:{}学习时间:{self.learned_time}"
def to_dict(self):
return self.__dict__
@classmethod
def from_dict(cls, data):
return cls(data)
```

这个Word类包含了单词的属性和一些辅助方法,例如将对象转换为字典以便于使用json模块进行序列化和反序列化,以及从字典恢复对象。

接下来,我们需要实现核心功能:添加单词、查询单词、编辑单词、删除单词和复习单词。我们将这些功能封装在函数中,并使用一个主循环来处理用户的输入。```python
import os
def add_word():
word = input("请输入单词:")
meaning = input("请输入词义:")
example = input("请输入例句(可选): ")
new_word = Word(word, meaning, example)
(new_word)
save_data()
print("单词添加成功!")
def search_word():
keyword = input("请输入要查询的单词或词义:")
results = [word for word in words if () in () or () in ()]
if results:
for word in results:
print(word)
else:
print("未找到相关单词。")
def edit_word():
keyword = input("请输入要编辑的单词:")
found = False
for word in words:
if == keyword:
= input(f"请输入新的词义({}): ") or
= input(f"请输入新的例句({}): ") or
save_data()
found = True
print("单词编辑成功!")
break
if not found:
print("未找到该单词。")

def delete_word():
keyword = input("请输入要删除的单词:")
global words
words = [word for word in words if != keyword]
save_data()
print("单词删除成功!")

def review_words():
if not words:
print("生词本为空,请先添加单词。")
return
for word in words:
print(word)
input("按回车键继续...")

def save_data():
with open("", "w", encoding="utf-8") as f:
([word.to_dict() for word in words], f, ensure_ascii=False, indent=4)

def load_data():
if (""):
with open("", "r", encoding="utf-8") as f:
data = (f)
global words
words = [Word.from_dict(item) for item in data]

load_data()
words = words or []
while True:
print("请选择操作:")
print("1. 添加单词")
print("2. 查询单词")
print("3. 编辑单词")
print("4. 删除单词")
print("5. 复习单词")
print("6. 退出")
choice = input("请输入你的选择:")
if choice == "1":
add_word()
elif choice == "2":
search_word()
elif choice == "3":
edit_word()
elif choice == "4":
delete_word()
elif choice == "5":
review_words()
elif choice == "6":
break
else:
print("无效选择,请重新输入。")
```

这段代码实现了基本的生词本功能。它使用了json模块将数据存储在文件中,方便下次启动时加载数据。 记得在运行前创建 `` 文件 (可以为空文件)。 这个代码可以进一步扩展,例如添加单词分组、学习进度统计、定时提醒等功能,以提升用户体验。

这个Python生词本只是一个基础框架,你可以根据自己的需求进行改进和扩展。例如,你可以添加更多功能,例如:单词发音、图片关联、spaced repetition算法(用于优化复习效率),以及更友好的用户界面。通过不断完善,你可以拥有一个真正属于你自己的,高效易用的生词本。

2025-05-31


上一篇:Python高效写入DataFrame:方法详解与性能优化

下一篇:Python数据填充:方法、技巧及最佳实践