打开小小输入法的郑码表观察,如
a 一 再
aa 一下
aaam 万无一失
aaav 可歌可泣
aaax 天下无难事
aacf 百无聊赖
aacm 无可奉告
aadj 无可挽回
aadt 殊死搏斗
aaeu 平型关
aaez 一开始
。。。
编程实现一个命令窗程序,使得能进行郑码查询,如输入aacm,则输出“无可奉告”。
方法一:将码表放在一个文本文件中,如zmb.txt,实现该功能。
代码如下:
# -*- coding: UTF-8 -*-
with open("zmb.txt","r") as f: # 打开zmb.txt文件
d=f.readlines();
# 查找函数
def findword(content):
english=""
chinese=""
flag=0
for zmb_list in d:
english=zmb_list.split("<")[1].split(">")[0] # 把“<”和">"作为分隔符对字符串进行切片
chinese=zmb_list.split(">")[1].split("<")[1]
if content == chinese:
flag=1
return english
if content == english:
flag=1
return chinese
if flag==0:
chinese="查不到该词!"
return chinese
while(True):
s =raw_input("Please input:")
if s=="ByeBye":
print "退出程序!"
exit()
print(findword(s))
文本文件zmb.txt如下:
查询过程如下:
方法二:将码表放在一个mysql数据库中。
代码如下:
# -*- coding: UTF-8 -*-
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost","root","123456","zmdb", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT *FROM zmb"
try:
# 执行 SQL语句
cursor.execute(sql)
#获取所有记录列表
results = cursor.fetchall()
# 循环操作
while (True):
s=raw_input("Please input:").decode("gbk")
english=""
chinese=""
flag=0
for row in results:
english=row[0]
chinese=row[1]
if s==english:
flag=1
print chinese
if s==chinese:
flag=1
print english
if s=="ByeBye":
print("退出程序!")
exit()
elif flag==0:
print("查不到该词!")
except:
print("Error:unable to fetch data")
# 关闭数据库连接
cursor.close()
db.close()
mysql数据库中的郑码表:
查询过程如下: