建立了一个英文字典,怎样实现只需要输入前几个字母就能输出整体的单词和解释呢,希望具体一点。
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 请完成下列相关问题!