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