因为要做选票,选票候选人要按照姓氏笔画排序,正好自己在学习Python,就想着写一个返回姓名笔画的程序,程序基本实现了功能,但用户体验可能做的不好,后续有时间再修改吧!
核心思想还是查表,表是从字母对照表是从github下载的,地址都写在参考内:
参考:
https://github.com/ouyangpeng/ChineseStrokeSorting (github地址,java程序,我只用了.db数据库文件)
Python——输入姓名,返回姓名笔画小程序
https://www.zhihu.com/question//answer/ (知乎里一个类似的回答)
Python——输入姓名,返回姓名笔画小程序
https://www.cnblogs.com/zhanghengyu/p/11121160.html (字符串去空格)
数据库文件百度网盘链接地址:
import sqlite3 #使用sql数据库 import numpy as np conn = sqlite3.connect('ChinessStroke.db') #文件可以下载我上传的,也可从github下载 print ("Opened database successfully") c = conn.cursor() c.execute('select * from BI_HUA_BEAN') # BI_HUA_BEAN 这个数据库存储的就是笔画表 #c.execute("select name from sqlite_master where type='table' order by name") list = c.fetchall() list = np.array(list) #print(list[:,3] == '30002') #print(list[:,3]) #print(type(list)) #a = '甲' #print(ord(a)) while True: str_in = input('请输入姓名(按q结束):') if str_in == 'q': break str = str_in # print(str_in.split()) # str = ''.join(str_in.split()) stroke = 0 # 初始化姓名笔画 for i in str: num = ord(i) #使用汉字的unicode来匹配 print(num) equal_to_num = (list[:, 3] == '%d' % num) stroke += int(list[equal_to_num, 2]) print(list[equal_to_num, :]) print('%s的笔画为:%d'%(str,stroke))
今天的文章 Python——输入姓名,返回姓名笔画小程序分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/96966.html