Skip to content

【练习】字典实现

项目简介

字典实现

知识模块

  • Python 编程语言

知识点

  • 字符串处理
  • 字典
  • 循环语句 for-in
  • 分支语句 if-else

受众

  • 初级测试开发工程师
  • 初级Python开发工程师

作业要求

编写一个Python程序,实现一个简单的字典。

解题思路

  1. 文本数据初始化:字符串 txt 包含了英文单词和对应的中文翻译。

  2. 字符串分割:将字符串 txt 根据换行符和空格进行分割,得到一个包含多个字符串的列表。

  3. 构建字典:遍历字符串列表中的每个字符串,去掉可能的 # 标志,然后将单词和翻译分别提取出来,构建一个字典。字典的键是英文单词,值是对应的中文翻译。

  4. 用户输入和翻译查找:用户被提示输入一个英文单词。程序检查字典中是否存在该单词,如果存在则输出对应的中文翻译,否则提示单词不存在。

完整代码

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("输入的单词不存在")

代码讲解

  1. 定义一个函数 func3,用于执行单词翻译操作。

  2. 准备需要翻译的字符串数据 txt,其中包含了单词及其翻译,每个单词和翻译之间使用换行符和Trans:分隔。

  3. 使用 split 方法按照换行符和 # 分割字符串 txt,得到一个包含所有单词及其翻译的列表 data

  4. 创建一个空字典 myDict,用于存储单词和翻译的键值对。

  5. 遍历列表 data,对于每个单词项,判断是否以 # 开头,如果是,则去掉开头的 #;然后使用 split 方法按照 Trans: 分割为单词和翻译,将其作 为键值对添加到字典 myDict 中(单词作为键,翻译作为值)。

  6. 提示用户输入一个需要翻译的单词。

  7. 如果用户输入的单词存在于字典 myDict 中,通过键来获取对应的翻译,并打印出来。

  8. 如果用户输入的单词不在字典 myDict 中,则打印出"输入的单词不存在"的提示信息。