m0_46015463 2019-12-12 23:12 采纳率: 0%
浏览 528

python 英文字典的联想查找

建立了一个英文字典,怎样实现只需要输入前几个字母就能输出整体的单词和解释呢,希望具体一点。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-12 23:42
    关注

    https://blog.csdn.net/yga_airspace/article/details/82146853

    # -*- coding: utf-8 -*-
    import re #输入re模块
    import sys #输入sys模块
    
    pro = "请输入中文:"
    pro_unicode = pro.decode("utf-8") #utf-8通过解码转化为unicode
    pro_gbk = pro_unicode.encode("gbk") #unicode编码转化为gbk
    wrong = "查不到该词"
    wrong_unicode = wrong.decode("utf-8")
    wrong_gbk = wrong_unicode.encode("gbk")
    tr = "英文:"
    tr_unicode = tr.decode("utf-8")
    tr_gbk = tr_unicode.encode("gbk")
    
    txt = open("dic.txt","r") #使用文件I/O里的open方法打开dic.txt
    obj =  txt.readlines() # 一次性加载所有内容到内存,并根据行分割成字符串
    
    while True:
        content = raw_input(pro_gbk) # 将用户输入的内容赋值给 cotent 变量
        flag = False #设置if条件标志
        if content == "ByeBye":
            sys.exit() #调用sys.exit函数,0是正常退出,其他为不正常,可抛异常事件供捕获
        for line in obj: # 每次仅读取一行数据
    
        #re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None。
            chinese = re.search("\[.*\]", line) #查找出带有“[]”的内容
            ch = chinese.group(0) #group() 返回re整体匹配的字符串
    
            #使用re替换string中每一个匹配的子串后返回替换后的字符串。
            c = re.sub(r'["[",\]]', '', ch) #将“[]”替换为“”
            english = re.search("\<.*\>", line) 
            en = english.group(0)
            e = re.sub(r'["<",\>]', '', en) 
    
            if content == c: #将输入的汉字与字典中的汉字匹配
                flag = True
                print '\n',tr_gbk,e,'\n'
        if flag == False:
            print wrong_gbk,'\n'
    
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!