输入汉字得到相应英文
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'
运行结果: