Python实现“字典查询”

输入汉字得到相应英文

    Python环境配置的相关内容在我的博客中已说明。


一、字典

    博主用txt文本制作了一份汉英字典,依靠此字典进行汉英查询。
图一

二、实现查询

输入“你”则在屏上回显“you”
输入“书”则在屏上回显“book”
输入“中”则在屏上回显“middle”
输入“中国”则在屏上回显“China”
……
如输入没有记录的词则如下:
输入“东东”则在屏上回显“查不到该词”。
输入ByeBye则退出程序。

程序代码:

# -*- 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'

运行结果:
图一

猜你喜欢

转载自blog.csdn.net/yga_airspace/article/details/82146853