• 首页 > 成语大全 > 成语接龙
  • 我用 Python 自制成语接龙小游戏,刺激!

    结构如下:chinese-xinhua/|+- data/ <-- 数据文件夹||| +- idiom.json <-- 成语| || +- word.json <-- 汉字||| +- xiehouyu.json <-- 歇后语| || +- ci.json <-- 词语可以直接从网络读取该github的json文件:importpandasaspdchengyu = pd.read_json("https://github.com/pwxcoo/chinese-xinhua/blob/master/data/idiom.json?raw=true")不过有可能网络不佳导致读取失败,下载好之后读取本地文件更佳:importpandasaspdimportnumpyasnpchengyu = pd.read_json("idiom.json")chengyu.head(2)该库有很多列,word列是我们需要的成语,pinyin列已经帮我们转换出了对应的拼音。下面我们整理出我们需要的数据:t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin","weipin"]]chengyu测试获取任意一个成语的接龙结果集:word="阿党比周"words = chengyu.index[chengyu.shoupin == chengyu.loc[word,"weipin"]]wordsIndex(['舟车劳顿','舟水之喻','舟中敌国','诌上抑下','侜张为幻','周而不比','周而复始','周公吐哺','周规折矩','周急继乏','周郎顾曲','周情孔思','周穷恤匮','周游列国','诪张变眩','诪张为幻','粥少僧多','粥粥无能'],dtype='object', name='word')然后随机任取一个:np.random.choice(words)'诪张为幻'测试没有问题,我们可以写一个批量接龙程序:word = input("请输入一个成语:")flag =Trueifwordnotinchengyu.index:print("你输入的不是一个成语,程序结束!")flag =Falsewhileflag:n = input("接龙的次数(1-100次的整数,输入任意字母表示结束程序)")ifnotn.isdigit:print("程序结束")breakn = int(n)ifnot(0< n <=100):print("非法数字,程序结束")breakfor_inrange(n):words = chengyu.index[chengyu.shoupin == chengyu.loc[word,"weipin"]]ifwords.shape[0] ==0:print("没有找到可以接龙的成语,程序结束")flag =Falsebreakword = np.random.choice(words)print(word)请输入一个成语:周郎顾曲接下来程序自动接龙的次数(1-100次的整数,其他情况表示结束)10曲尽奇妙妙趣横生声应气求求人不如求己掎挈伺诈诈痴不颠颠乾倒坤昆山之玉玉叶金枝织当访婢接下来程序自动接龙的次数(1-100次的整数,其他情况表示结束)no结束完整代码importpandasaspdimportnumpyasnpchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin","weipin"]]word = input("请输入一个成语:")flag =Trueifwordnotinchengyu.index:print("你输入的不是一个成语,程序结束!")flag =Falsewhileflag:n = input("接龙的次数(1-100次的整数,输入任意字母表示结束程序)")ifnotn.isdigit:print("程序结束")breakn = int(n)ifnot(0< n <=100):print("非法数字,程序结束")breakfor_inrange(n):words = chengyu.index[chengyu.shoupin == chengyu.loc[word,"weipin"]]ifwords.shape[0] ==0:print("没有找到可以接龙的成语,程序结束")flag =Falsebreakword = np.random.choice(words)print(word)我们还可以写一个与机器对战的成语接龙小游戏:import pandas as pdimport numpy as npchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]is_head =input("是否先手(输入N表示后手,其他表示先手)")ifis_head =="N":word2 = np.random.choice(chengyu.index)print(word2)weipin = chengyu.loc[word2,"weipin"]else:weipin =''whileTrue:word =input("请输入一个成语(认输或离开请按Q):")ifword =="Q":print("你离开了游戏,再见!!!")breakifwordnotinchengyu.index:print("你输入的不是一个成语,请重新输入!")continueifweipinandchengyu.loc[word,'shoupin'] != weipin:print("你输入的成语并不能与机器人出的成语接上来,你输了,游戏结束!!!")breakwords = chengyu.index[chengyu.shoupin == chengyu.loc[word,"weipin"]]ifwords.shape[0] ==0:print("恭喜你赢了!成语机器人已经被你打败!!!")breakword2 = np.random.choice(words)print(word2)weipin = chengyu.loc[word2,"weipin"]是否先手(输入N表示后手,其他表示先手)请输入一个成语(认输或离开请按Q):妙趣横生生米煮成熟饭请输入一个成语(认输或离开请按Q):饭来开口口呆目钝请输入一个成语(认输或离开请按Q):遁名匿迹计功谋利由于成语积累量较少,几局就已经快玩不下去,于是我打算再写个成语查询器方便开挂后再上,而不是疯狂的百度,代码如下:fromgooeyimportGooey, GooeyParserimportpandasaspdchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin","weipin"]]@Gooeydefmain:parser = GooeyParser(deion="成语接龙查询器 - @小小明")parser.add_argument('word', help="被查询的成语")args = parser.parse_argsword = args.wordifwordnotinchengyu.index:print("你输入的不是一个成语,请重新输入!")else:words = chengyu.index[chengyu.shoupin == chengyu.loc[word,"weipin"]]ifwords.shape[0] >0:print("满足条件的成语有:")print("、".join(words))else:print("抱歉,没有找到能够满足条件的成语")print("-----"*10)if__name__ =='__main__':main这里我使用了Gooey,需要pip安装:pipinstall Gooey项目地址:https://github.com/chriskiehl/Gooey体验一把:点击start后:要重新开始查询只需点击Edit按钮即可。Gooey支持的组件还挺多的,可以参考GitHub项目说明。虽然Gooey远不如专业的图形化框架专业,但对于简单的需求也挺简单便捷,能快速把命令行程序转换为图形化程序。左手Python,右手Java,升职就业不愁啦!入门:最全的零基础学Python的问题|零基础学了8个月的Python|实战项目| 学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》|38年NBA最佳球员分析|从万众期待到口碑扑街!唐探3令人失望| 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏|九宫格| 漂亮的花 | 两百行Python《天天酷跑》游戏!AI:会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具:Pdf转Word,轻松搞定表格和水印!|一键把html网页保存为pdf!|再见PDF提取收费!|用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换|制作一款钉钉低价机票提示器!|60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1). 卧槽!Pdf转Word用Python轻松搞定 !

    我用 Python 自制成语接龙小游戏,刺激!

    2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

    3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

    4). 80行代码!用Python做一个哆来A梦分身

    5).你必须掌握的20个python代码,短小精悍,用处无穷

    6). 30个Python奇淫技巧集

    7). 我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

    8). 再见Python!我要学Go了!2500字深度分析 !

    我用 Python 自制成语接龙小游戏,刺激!

    9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领AI全套资料返回搜狐,查看更多

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 972197909@qq.com 举报,一经查实,本站将立刻删除。

    相关推荐