简易版的英语单词学习系统 Python 实现。

用户可以学习单词并接受选择题测试。

# 简易英语单词学习系统

# 1. 定义词库 (单词: 中文释义)
ciku = {
    "apple": "苹果",
    "banana": "香蕉",
    "computer": "电脑",
    "book": "书",
    "water": "水",
    "hello": "你好",
    "goodbye": "再见",
    "cat": "猫",
    "dog": "狗",
    "student": "学生"
}

# 2. 学习模式函数
def xuexi():
    """展示所有单词及其释义"""
    print("\n--- 单词库 ---")
    for yingwen, zhongwen in ciku.items():
        print(f"{yingwen}: {zhongwen}")
    print("--------------\n")

# 3. 测试模式函数
def ceshi():
    """随机抽取单词进行选择题测试"""
    import random
    # 获取所有单词列表
    danci_list = list(ciku.keys())
    # 随机打乱顺序
    random.shuffle(danci_list)

    print("\n--- 开始测试 --- (输入选项字母 a, b, c, d 或输入 'tuichu' 退出)")
    zhengque = 0  # 正确计数
    cuowu = 0     # 错误计数

    # 遍历打乱后的单词列表进行测试
    for danci in danci_list:
        # 获取正确答案
        zhengque_daan = ciku[danci]
        # 从整个词库释义中随机抽取3个错误选项
        cuowu_daan_list = random.sample(list(ciku.values()), 3)
        # 确保正确答案不在错误选项里 (虽然概率极低,但加个判断)
        if zhengque_daan in cuowu_daan_list:
            cuowu_daan_list.remove(zhengque_daan)
            # 如果移除后不够3个,再补一个随机错误选项 (确保4个选项)
            while len(cuowu_daan_list) < 3:
                bu_de = random.choice(list(ciku.values()))
                if bu_de != zhengque_daan and bu_de not in cuowu_daan_list:
                    cuowu_daan_list.append(bu_de)
        # 组合四个选项 (1个正确 + 3个错误)
        xuanxiang_list = [zhengque_daan] + cuowu_daan_list
        # 打乱选项顺序
        random.shuffle(xuanxiang_list)
        # 生成选项字母 (a, b, c, d)
        xuanxiang_zimu = ['a', 'b', 'c', 'd']

        # 打印问题和选项
        print(f"\n单词 '{danci}' 的中文意思是?")
        for idx, xx in enumerate(xuanxiang_list):
            print(f"{xuanxiang_zimu[idx]}. {xx}")

        # 获取用户输入
        user_input = input("你的选择: ").lower().strip()  # 转换为小写并去除空格

        # 检查用户是否想退出
        if user_input == 'tuichu':
            print("退出测试模式。")
            break

        # 检查输入是否有效 (a, b, c, d)
        if user_input not in xuanxiang_zimu:
            print("无效输入,请输入 a, b, c 或 d。")
            cuowu += 1
            continue

        # 获取用户选择的选项索引
        user_choice_index = xuanxiang_zimu.index(user_input)
        # 获取用户选择的释义
        user_choice = xuanxiang_list[user_choice_index]

        # 判断对错
        if user_choice == zhengque_daan:
            print("正确!")
            zhengque += 1
        else:
            print(f"错误!正确答案是: {zhengque_daan}")
            cuowu += 1

    # 打印测试结果
    print("\n--- 测试结束 ---")
    print(f"正确: {zhengque} 题")
    print(f"错误: {cuowu} 题")
    if (zhengque + cuowu) > 0:  # 避免除零
        print(f"正确率: {(zhengque / (zhengque + cuowu)) * 100:.2f}%")

# 4. 主程序循环
def main():
    print("欢迎使用简易英语单词学习系统!")
    while True:
        print("\n请选择模式:")
        print("1. 学习单词 (查看词库)")
        print("2. 测试单词")
        print("3. 退出系统")
        xuanze = input("输入选项 (1/2/3): ").strip()

        if xuanze == '1':
            xuexi()
        elif xuanze == '2':
            ceshi()
        elif xuanze == '3':
            print("感谢使用,再见!")
            break
        else:
            print("无效输入,请重新选择。")

# 5. 启动程序
if __name__ == "__main__":
    main()

使用说明:

  1. 运行程序:将代码保存为 .py 文件(例如 word_learning.py)并运行。
  2. 主菜单:程序启动后显示主菜单,提供三个选项:
    • 1: 学习单词 - 显示当前词库中的所有单词及其中文释义。
    • 2: 测试单词 - 进入测试模式。系统随机抽取单词,给出四个中文选项(一个正确,三个错误),用户选择答案后即时反馈对错。测试过程中可以输入 tuichu 退出测试。
    • 3: 退出系统 - 结束程序。
  3. 测试模式
    • 每次测试会遍历词库(顺序随机)。
    • 用户需输入选项对应的字母 a, b, c, d
    • 测试结束后显示正确题数、错误题数和正确率。

可扩展功能:

  • 管理词库:增加从文件加载词库、添加/删除单词的功能。
  • 记录学习进度:记录用户的历史测试成绩、常错单词等。
  • 多种测试模式:增加英译中选择题、中译英填空题、拼写练习等。
  • 难度分级:根据用户水平选择不同难度的词库。
  • 图形界面:使用 tkinterPyQt 等库创建更友好的界面。

这个简易版本聚焦于核心功能(学习词库和选择题测试),代码结构清晰,易于理解和扩展。

更多推荐