# 英语生词本
"""
介绍:背单词是学英语最基础的一环,不少学生在背单词的过程中会整理自己的生词本,以不断拓展自己的词汇量。
知识点:
1、集合的创建、增添、删除、查询、遍历
2、循环语句:while、for
3、条件语句:if、elif、else
4、跳转语句:break、continue
5、旗帜应用
不足(待改善):
1、完善程序,可以尝试添加提示语,让程序可读性更强
2、可尝试添加一些确认,例如:加一个条件,是否确认删除生词
3、在背单词模式可以尝试做一些文章,(默认是‘000’退出),例如:加一些旁白介绍、加一些条件确认
4、本程序硬伤:无法保存在文件或磁盘,可以尝试改善
"""
# 定义一个可改变的集合变量,用于存储英语单词
vocab = set()
message = '请输入编号:'
print(' =====欢迎来到开心英语生词表=====')
while True:
# 菜单界面
print(' ============================')
print('1.查看所有英语生词\t2.进入背单词模式')
print('3.添加新的英语生词\t4.删除英语生词')
print('5.查询英语生词\t0.退出')
# 输入编号
print('{}' .format(message), end='')
num = input()
# 1.查看所有英语生词
if num == '1':
count = 1 # 单词计数
# 判断是否为空集合
if vocab == set():
print('\t\t 生词本无数据!')
continue
# 遍历打印
for i in vocab:
print('{} - {}' .format(i[0], i[1]), end=';\t')
# 每5个单词换一行
if count % 5 == 0:
print()
count += 1 # 单词计数
print() # 打印换行
# 2.进入背单词模式
elif num == '2':
# 判断是否为空集合
if vocab == set():
print('\t\t 生词本无数据!')
continue
# 遍历单词
for i in vocab:
print('{} 的翻译是:' .format(i[0]), end='')
chinese = input()
# 判断翻译是否正确
if chinese == i[1]:
print('\t\t 你太棒了!')
continue
elif chinese == '000': # 退出背单词模式
break
else:
print('\t\t 你再想想!')
# 查看翻译
while True:
print('是否查看翻译(y/n):', end='')
select = input()
if select == 'y' or select == 'Y':
print('\t\t {} - {}' .format(i[0], i[1]))
break
elif select == 'n' or select == 'N':
break
else:
print('\t\t 输入有误!!!')
# 3.添加新的英语生词
elif num == '3':
# 请输入英语
english = input('请输入英语单词:')
chinese = input('请输入单词翻译:')
# 存入集合,注意只能用add()
vocab.add((english, chinese))
# 打印刚存入的生词
print('\t\t {} - {}\n\t\t 已添加到生词本' .format(english, chinese))
# 4.删除英语生词
elif num == '4':
flag_del = 0 # 删除单词旗帜
# 判断是否为空集合
if vocab == set():
print('\t\t 生词本无数据!')
continue
# 中文/英文删除
data = input('请输入需要删除的(英文/中文):')
for i in vocab:
if data == i[0] or data == i[1]:
vocab.remove((i[0], i[1]))
print('\t\t {} - {}\n\t\t 生词已删除!!!' .format(i[0], i[1]))
flag_del = 1 # 删除单词旗帜
break
# 单词不存在
if flag_del != 1:
print('\t{} 未添加到生词本!' .format(data))
# 5.查询英语生词
elif num == '5':
flag_find = 0 # 查询旗帜
# 判断是否为空集合
if vocab == set():
print('\t\t 生词本无数据!')
continue
# 英语/中文查询
data = input('请输入需要查询的(英文/中文):')
for i in vocab:
if data == i[0] or data == i[1]:
print('\t\t {} - {}' .format(i[0], i[1]))
flag_find = 1 # 查询旗帜
break
# 未找到生词
if flag_find != 1:
print('\t{} 未添加到生词本!' .format(data))
# 0.退出
elif num == '0':
print('\t ===已退出生词表===')
break
# 其他
else:
print('\t\t输入有误!!!')
message = '请重新输入编号:'
continue
message = '请输入编号:'
运行程序:
创作日期:2022/5/17