Python生词本:集合的增加、删除和查询操作详解

生词本

背单词是英语学习中最基础的一环,不少学生在背诵单词的过程中会整理自己的生词本,以不断拓展自己的词汇量。本实例要求编写生词本程序,该程序需具备以下功能。

(1)查看生词列表功能:输出生词本中全部的单词;若生词本中没有单词,则提示“生词本内容为空”。

(2)背单词功能:从生词列表中取出一个单词,要求用户输入相应的翻译,输入正确提示“太棒了”,输入错误提示“再想想”。

(3)添加新单词功能:用户分别输入新单词和翻译,输入完成后展示添加的新单词和翻译,并提示用户“单词添加成功”。若用户输入的单词已经存在于生词本中,提示“此单词已存在”。

(4)删除单词功能:展示生词列表,用户输入单词以选择要删除的生词,若输入的单词不存在提示“删除的单词不存在”,生词删除后提示“删除成功”。

(5)清空生词本功能:查询生词列表,若列表为空提示“生词本内容为空”,否则清空生词本中的全部单词,并输出提示信息“生词本已清空”。

(6)退出生词本功能:退出生词本。

任务目标

熟练地创建集合

掌握集合的基本操作,能添加、删除、查看、清空集合元素

实例分析

本实例的生词本主要用于保存多个单词及其翻译,其中的单词与翻译是互相对应的,且单词是不能重复的,因此这里可将每组单词与翻译视为一个字典,将生词本视为包含多个单词的集合。但集合中存储的元素必须是可哈希类型的,其中不能包含字典,这时需要将字典转换为字符串之后再添加到集合中。

生词本具有5个功能,分别是查看生词本、背单词、添加新单词、删除单词和清空生词本。其中背单词的功能相当于遍历集合元素的操作,添加新单词的功能相当于往集合中添加元素的操作,删除单词和清空生词本的功能相当于删除和清空集合元素的操作。

代码

# 定义一个集合,用于保存生词本中的单词
vocabulary = set()


# 查看生词列表
def view_vocabulary():
    if len(vocabulary) == 0:
        print("生词本内容为空")
    else:
        print(vocabulary)


# 背单词
def memorize_word():
    if not vocabulary:  # 如果生词本为空
        print("生词本为空,请先添加单词")
        return
    for item in vocabulary:
        word, meaning = item
        answer = input("请输入%s的翻译:" % word)
        while True:
            if answer == meaning:
                print("太棒了,回答正确")
                break
            else:
                answer = input("再想想,请重新输入:")


# 添加新单词
def add_word():
    word = input("请输入新单词:")
    meaning = input("请输入单词翻译:")
    if word in vocabulary:
        print("此单词已存在")
    else:
        vocabulary.add((word, meaning))
        print("单词添加成功")
        print("%s: %s" % (word, meaning))


# 删除单词
def delete_word():
    view_vocabulary()
    word = input("请输入要删除的单词:")
    for item in vocabulary:
        if item[0] == word:
            vocabulary.remove(item)
            print("删除成功")
            break
    else:
        print("删除的单词不存在")


# 清空生词本
def clear_vocabulary():
    if len(vocabulary) == 0:
        print("生词本内容为空")
    else:
        vocabulary.clear()
        print("生词本清空成功")


# 主程序
print("====================")
print("欢迎使用生词本")
print("1.查看生词本")
print("2.背单词")
print("3.添加新单词")
print("4.删除单词")
print("5.清空生词本")
print("6.退出生词本")
print("====================")
while True:
    choice = input("请输入功能编号:")
    if choice == "1":
        view_vocabulary()
    elif choice == "2":
        memorize_word()
    elif choice == "3":
        add_word()
    elif choice == "4":
        delete_word()
    elif choice == "5":
        clear_vocabulary()
    elif choice == "6":
        break
    else:
        print("输入错误,请重新输入")

运行结果

====================
欢迎使用生词本
1.查看生词本
2.背单词
3.添加新单词
4.删除单词
5.清空生词本
6.退出生词本
====================
请输入功能编号:3
请输入新单词:Kevin
请输入单词翻译:凯文
单词添加成功
Kevin: 凯文
请输入功能编号:3
请输入新单词:Elysia
请输入单词翻译:爱莉希雅
单词添加成功
Elysia: 爱莉希雅
请输入功能编号:1
{('Elysia', '爱莉希雅'), ('Kevin', '凯文')}
请输入功能编号:2
请输入Elysia的翻译:凯文
再想想,请重新输入:爱莉希雅
太棒了,回答正确
请输入Kevin的翻译:凯文
太棒了,回答正确
请输入功能编号:4
{('Elysia', '爱莉希雅'), ('Kevin', '凯文')}
请输入要删除的单词:Kevin
删除成功
请输入功能编号:1
{('Elysia', '爱莉希雅')}
请输入功能编号:5
生词本清空成功
请输入功能编号:6

Process finished with exit code 0
物联沃分享整理
物联沃-IOTWORD物联网 » Python生词本:集合的增加、删除和查询操作详解

发表评论