Created
December 29, 2024 12:45
-
-
Save diaowinner/315d247affcf90caeb5a697a8c89ecbd to your computer and use it in GitHub Desktop.
五笔查词
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python3 | |
| # 五笔查词 by DWN <https://dwn.dwnfonts.cc> | |
| # Licensed under BSD-3-Clause | |
| # cod'dte: 话说机器人可不可以整个五笔造词功能,给词自动输出五笔码 | |
| # 所以这就是了。入门级教程,猴子都能看懂。 | |
| # 另外我不用五笔。另外中文关键字怎么你了。 | |
| class 字表: # 首先让我们新建一个类。至于为啥不面向函数或者别的,因为他优雅啊(大雾 | |
| def __init__(self, 源数据) -> None: | |
| # 初始化源数据,这样就可以拿词典换字表了! | |
| self.源数据 = 源数据 # 虽然这脚本没用过,但是源数据咱还是得读取的嘛。 | |
| def 查词(self, 词): # 终于到了爷最喜欢的查词环节 | |
| 编码 = [self.源数据[汉字] for 汉字 in 词] | |
| # [f(x) for x in b] 就是把 b 的每一项掏出来处理了再放进去。 | |
| # 通过这么整编码就是类似于 ["ynii", "fqpv"] 这种形式。 | |
| match len(编码): # 看编码有多长 | |
| case 1: # 一个字(这是词吗?) | |
| return 编码[0] # 显然这不是词。不能直接空降毕竟这是一列表呢。 | |
| case 2: # 二字词: 取两个字的前两个五笔码 | |
| return 编码[0][0:2] + 编码[1][0:2] | |
| case 3: # 三字词: 取第一第二个字的一个五笔码, 第三个字的二个五笔码 | |
| return 编码[0][0] + 编码[1][0] + 编码[2][0:2] | |
| case _: # 四字及以上: 取前三个字的一个五笔码和最后一个字的一个五笔码 | |
| return 编码[0][0] + 编码[1][0] + 编码[2][0] + 编码[-1][0] | |
| # 使用例 | |
| if __name__ == "__main__": # 导入的时候出现这使用例太傻逼了,所以这么设。 | |
| 源数据 = { | |
| # 这里只提供部分数据,因为数据太多不简洁。 | |
| # 本站就有许多五笔字表呢:https://www.google.com/search?q=%E4%BA%94%E7%AC%94+site%3Agithub.com&udm=14 | |
| "永": "ynii", | |
| "远": "fqpv", | |
| "恶": "gogn", | |
| "作": "wthf", | |
| "剧": "ndjh", | |
| "从": "wwy", | |
| "无": "fqv", | |
| "到": "gcfj", | |
| "有": "def", | |
| } | |
| 示例字表 = 字表(源数据) # 一次导入可以用三次呢,这不就是赚到? | |
| print(示例字表.查词("永远")) | |
| print(示例字表.查词("恶作剧")) | |
| print(示例字表.查词("从无到有")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment