【练习】字典实现
项目简介
字典实现
知识模块
- Python 编程语言
知识点
- 字符串处理
- 字典
- 循环语句 for-in
- 分支语句 if-else
受众
- 初级测试开发工程师
- 初级Python开发工程师
作业要求
编写一个Python程序,实现一个简单的字典。
解题思路
-
文本数据初始化:字符串 txt 包含了英文单词和对应的中文翻译。
-
字符串分割:将字符串 txt 根据换行符和空格进行分割,得到一个包含多个字符串的列表。
-
构建字典:遍历字符串列表中的每个字符串,去掉可能的 # 标志,然后将单词和翻译分别提取出来,构建一个字典。字典的键是英文单词,值是对应的中文翻译。
-
用户输入和翻译查找:用户被提示输入一个英文单词。程序检查字典中是否存在该单词,如果存在则输出对应的中文翻译,否则提示单词不存在。
完整代码
def func3():
txt = '''#a
Trans:art. 一;字母A
#a.m.
Trans:n. 上午
#a/c
Trans:n. 往来帐户@往来:come - and - go; contact; intercourse@n. 往来帐户
#aardvark
Trans:n. 土猪
#aardwolf
Trans:n. 土狼
#aasvogel
Trans:n. 秃鹰之一种
#abaci
Trans:n. 算盘
#aback
Trans:ad. 向后地;朝后地
#abacus
Trans:n. 算盘
#abaft
Trans:ad. 向船尾@prep. 在...后
#abalone
Trans:n. 鲍鱼
#abandon
Trans:vt. 放弃;沉溺@n. 放任
#abandoned
Trans:a. 被抛弃的;自弃的;自甘堕落的
#abandonee
Trans:n. 被遗弃者;被委付者
#abandoner
Trans:n. 遗弃者;委付者
#abandonment
Trans:n. 放弃;自暴自弃;放纵
#abas
Trans:vt. 打倒
#abase
Trans:vt. 降低...的地位;降低...的品格;贬抑
#abasement
Trans:n. 贬抑;屈辱;谦卑
#abash
Trans:vt. 使...羞愧;使困窘
#abashment
Trans:n. 羞愧;
#abate
Trans:vt. 缓和;减弱;减少;废除@vi. 缓和;减弱;减少
#abatement
Trans:n. 减少;减轻;缓和
#abatis
Trans:n. 鹿柴;拒木;铁丝网
#abatment
Trans:n. 消除,减除
#abb
Trans:n. 横丝;纬;羊毛
#abbacy
Trans:n. 大修道院院长之职位;管区;任期
#abbatial
Trans:a. 大修道院的;大修道院长的;女大修道院长的
#abbe
Trans:n. 大修道院院长;僧侣;神父
#abbess
Trans:n. 女修道院院长;女庵主持
#abbey
Trans:n. 修道院
#abbot
Trans:n. 修道院院长;方丈;住持
#abbreviate
Trans:vt. 缩写;使...简略;缩短
#abbreviation
Trans:n. 缩写
#abbreviator
Trans:n. 缩写者
#abc
Trans:n. 基础知识;美国广播公司;澳大利亚广播公司
#abcoulomb
Trans:n. 绝对库伦
#abdicate
Trans:vt. 放弃@vi. 逊位
#abdication
Trans:n. 逊位;弃权;辞职
#abdicator
Trans:n. 放弃者;让位者
#abdomen
Trans:n. 腹部
#abdominal
Trans:a. 腹部的;腹式呼吸;开腹手术
#abduct
Trans:vt. 诱拐;绑走
#abduction
Trans:n. 诱拐
#abductor
Trans:n. 诱拐者
#abe
Trans:n. 亚伯;Abraham 的昵称
#abeam
Trans:ad. 与船的龙骨成直角
#abecedarian
Trans:n. 初学者@a. 字母的;初步的
#abed
Trans:ad. 在床上
#abelmosk
Trans:n. 秋葵
#aberrance
Trans:n. 脱离正道;越轨;脱离常轨
#aberrant
Trans:a. 脱离正道的;脱离常轨的;变体的
#aberration
Trans:n. 越轨;光行差;心理失常;色差
#abestrine
Trans:adj. 石棉的
#abet
Trans:vt. 教唆;帮助'''
data = txt.split("\n #")
myDict = {}
for item in data:
# 处理第一个单词字符串
if item.startswith("#"):
item = item[1:]
# 拆分单词项
k, w = item.split("\n Trans:")
myDict[k] = w
inw = input("请输入一个单词:")
if inw in myDict:
trans = myDict[inw]
print(trans)
else:
print("输入的单词不存在")
代码讲解
-
定义一个函数
func3
,用于执行单词翻译操作。 -
准备需要翻译的字符串数据
txt
,其中包含了单词及其翻译,每个单词和翻译之间使用换行符和Trans:
分隔。 -
使用
split
方法按照换行符和#
分割字符串txt
,得到一个包含所有单词及其翻译的列表data
。 -
创建一个空字典
myDict
,用于存储单词和翻译的键值对。 -
遍历列表
data
,对于每个单词项,判断是否以#
开头,如果是,则去掉开头的#
;然后使用split
方法按照Trans:
分割为单词和翻译,将其作 为键值对添加到字典myDict
中(单词作为键,翻译作为值)。 -
提示用户输入一个需要翻译的单词。
-
如果用户输入的单词存在于字典
myDict
中,通过键来获取对应的翻译,并打印出来。 -
如果用户输入的单词不在字典
myDict
中,则打印出"输入的单词不存在"的提示信息。