Ai
1 Star 0 Fork 0

forward-ovo/Python-Class

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
wordbank.py 6.31 KB
一键复制 编辑 原始数据 按行查看 历史
ysy 提交于 2025-06-08 14:33 +08:00 . 英语笔记管理系统
import random
import time
import service
import keyboard
def printWord(word: str, forceRefresh: bool = False):
content = service.getWord(word, forceRefresh)
print(f"\n{word}\n\n发音:")
for pro in content["pron"]:
print(f"<{pro["pos"]}> UK: {pro["uk"]} US: {pro["us"]}")
print("\n释义:", end='')
for item in content["defs"]:
print(f"\n[{item["pos"]}] {item["def"]} {item["trans"]}")
print("例句:")
i = 1
for eg in item["eg"]:
print(f"{i}. {eg["eg"]}")
print(eg["trans"])
i += 1
def deleteWord():
while True:
try:
dAll = int(input("删除(1. 全部单词;2. 某个单词)?"))
if dAll not in (1, 2):
raise ValueError
except ValueError:
print("输入错误!")
continue
break
if dAll == 1:
service.dropWordbank()
service.initWordbank()
else:
while True:
try:
wordId = int(input("请输入单词ID:"))
except ValueError:
print("输入错误!")
continue
break
result = service.deleteWordById(wordId)
if result > 0:
print("[deleteWord] Success!")
else:
print("[deleteWord] Error!")
def refreshWord():
while True:
try:
rAll = int(input("删除(1. 全部单词;2. 某个单词)?"))
if rAll not in (1, 2):
raise ValueError
except ValueError:
print("输入错误!")
continue
break
if rAll == 1:
print("[wordbank] Loading...")
words = service.getAllWords()
print("[wordbank] Loaded!")
for word in words:
service.getWord(word["word"], True)
else:
printWord(input("请输入单词:"), True)
def flashCard():
tot = service.getWordsCount()
while True:
try:
cnt = int(input(f"请输入要背的单词数量(总数:{tot}):"))
except ValueError:
print("输入错误!")
continue
break
if cnt > service.getWordsCount():
print("你的单词表还没有这么多单词哦~试试减少数量或者多添加些单词吧^_^")
return
print("[wordbank] Loading...")
words = service.getAllWords()
print("[wordbank] Loaded!")
words = random.sample(words, cnt)
count = 0
key_cnt = 0
notFamiliar = set()
while count < cnt:
word = random.choice(words)
if word.get("passed") == True:
continue
print("====================FLASH CARD====================")
print("| |")
print(f"|{word["word"]:^48}|")
print("| |")
for pro in word["content"]["pron"]:
pro_str = f"<{pro["pos"]}> UK: {pro["uk"]} US: {pro["us"]}"
print(f"|{pro_str:^48}|")
print("| |")
print("| |")
print("--------------------------------------------------")
print("f不认识 <space>查看释义 j认识")
while True:
if keyboard.is_pressed('space'):
time.sleep(0.2)
printWord(word["word"])
key_cnt += 1
print("====================FLASH CARD====================")
print("| |")
print(f"|{word["word"]:^48}|")
print("| |")
for pro in word["content"]["pron"]:
pro_str = f"<{pro["pos"]}> UK: {pro["uk"]} US: {pro["us"]}"
print(f"|{pro_str:^48}|")
print("| |")
print("| |")
print("--------------------------------------------------")
print("f不认识 <space>查看释义 j认识")
if keyboard.is_pressed('j'):
time.sleep(0.2)
key_cnt += 1
if word.get("passed") == False:
word.pop("passed")
else:
word["passed"] = True
count += 1
break
if keyboard.is_pressed('f'):
time.sleep(0.2)
key_cnt += 1
notFamiliar.add(word["word"])
word["passed"] = False
break
print(f"背完啦!本次共背了{cnt}个单词~")
print(f"其中,有{cnt - len(notFamiliar)}个单词很熟练,以下{len(notFamiliar)}个单词还需要注意复习哦:\n")
for i in notFamiliar:
print(i, end=' ')
print("\n")
for i in range(key_cnt):
keyboard.press_and_release('backspace')
time.sleep(0.5)
def wordbank():
while True:
print("=============WORDBANK=============")
print("1. 查询单词")
print("2. 查看单词表")
print("3. 删除单词")
print("4. 刷新单词缓存")
print("5. 进入背单词模式")
print("0. 退出")
print("==================================")
while True:
try:
choice = int(input("请选择操作:"))
if choice not in (1, 2, 3, 4, 5, 0):
raise ValueError
except ValueError:
print("输入错误!")
continue
break
if choice == 1:
printWord(input("请输入单词:"))
elif choice == 2:
print("[wordbank] Loading...")
words = service.getAllWords()
print("[wordbank] Loaded!")
print("=============================")
print("| ID | word |")
print("-----------------------------")
for word in words:
print(f"|{word["id"]:^6}|{word["word"]:^20}|")
print("=============================")
elif choice == 3:
deleteWord()
elif choice == 4:
refreshWord()
elif choice == 5:
flashCard()
else:
break
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/forward-ovo/python-class.git
git@gitee.com:forward-ovo/python-class.git
forward-ovo
python-class
Python-Class
master

搜索帮助