python——成语接龙小游戏

小试牛刀的简易成语接龙。

思路——

1、网上下载成语字典的txt版本

2、通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快)

3、python程序,查找 用户输入的最后一个字和字典里首字一致的,放入列表,并通过random进行随机选择,然后输出

 

字典整理部分:转换成字典

file = open(r'D:\Desktop\zidian.txt').readlines()
f = open(r'D:\Desktop\zidian3.txt','w')
x={}
num = 0
for i in file:print i[2:10]x[num] = i[2:10]f.write("'%s':u'%s',\n"%(num,i[2:10]))num+=1
f.close()

转换成字典——类似格式

chengyu = {

'0':u'阿党比周',
'1':u'阿平绝倒',
'2':u'阿权膴仕',
'3':u'阿时趋俗',
'4':u'阿世媚俗',
'5':u'阿世取容'……}

 

 

判断部分:通过input获取成语,然后截取最后一个字,在字典中寻找该字开头的成语,并输出。加入try,except,防止找不到成语的错误。(字典不全,只有20000+数据)

while 1:list = []s =raw_input('请输入成语:')ns = s.decode('gbk')[-1:]try:for i in chengyu.values():ni = i[:1]if ns == ni:list.append(i)print u'接龙:',len(list),random.choice(list)except:print u'接龙:是在下输了'

 

 

效果图:没有进行优化处理,没有判断用户输入是否输入正确成语。 

 

 

 

程序比较简易,主要困难在于编码的转换,困惑了很久。

1、判断字是否相等的时候,如果编码格式不一致,是不能比较的,会发生错误。str是gbk编码,先解码成unicode,然后在进行比较。 

2、如果不知道编码,可使用isinstance(s, unicode)判断,或者import  chardet,然后用chardet.detect(TestData)查询格式(偶然看到关于编码,这里有比较好的说明http://www.cnblogs.com/drsnow/p/7017129.html)

3、先解码s.decode('gbk')[-1:],和s[-1:].decode('gbk')是不一样的效果,前者是对的,后者也会出错

 

转载于:https://www.cnblogs.com/vhills/p/7000791.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计划B? 那是计划N…没什么。 拼图于2015年问世

真是一天 当典型的欧洲人逐渐破产时,美国的人们开始喝咖啡。 这就是为什么我在Mark Reinhold最近的新闻中睡个好觉的原因。 他在题为“ Project Jigsaw:火车晚点 ”的帖子中建议将Project Jigsaw推迟到下一个版本Java 9。 在最近的会议和博客文章上&…

C# 访问MongoDB 通用方法类

using MongoDB.Driver; using System; namespace MongoDBDemo { public class MongoDb { public MongoDb(string host,string timeOut) { this.CONNECT_TIME_OUT timeOut; this.MONGO_CONN_HOST host; } /// <summary> /// 数据库所在主机 /// </sum…

html网页背景图片平铺代码,jQuery图片平铺效果制作网页背景图片平铺代码

插件描述&#xff1a;jQuery图片平铺效果制作网页背景图片平铺代码调用JS文件调用插件方法$(function(){// 插件初始化$(img).jqthumb({classname : jqthumb, // 类名. 默认是 jqthumbwidth : 100%, // 新的图像裁剪后宽度. 默认是 100px.height : 100%, // 新的图像裁剪后高度…

使用保险丝结构管理MQ和ESB的大型部署,第I部分

FuseSource最近发布了ActiveMQ和ServiceMix发行版的企业版。 其中一些重要功能包括增量修补 &#xff0c; 自定义平台安装程序和第三方验证 。 新企业版附带的最酷的功能之一是Fuse Fabric和一些新工具 &#xff0c;使您可以利用Fabric管理环境。 Fabric允许您通过一些命令行或…

Mybatis参数传递及返回类型

mybatis参数传递&#xff1a; 单个参数&#xff1a;不做特殊处理 #{参数名}&#xff1a;取出参数值 多个参数&#xff1a;做特殊处理 多个参数会被封装成一个map key&#xff1a;param1 ... paramN value&#xff1a;传入的参数…

网络html代码是什么问题,html代码问题

html代码问题來源:互聯網 2010-03-22 10:35:57 評論分類: 電腦/網絡 >> 程序設計 >> 其他編程語言問題描述:这三种链接格式我都试了&#xff0c;都不行&#xff0c;请高手指点下。。。。。注意&#xff1a;我要的是代码&#xff0c;不是操作方法&#xff0c;因为…

spring mvc 文件上传

spring mvc 文件上传 一、单文件上传 配置步骤&#xff1a; 步骤一、在配置文件中配置包扫描器&#xff08;暂且这样配&#xff0c;会出问题&#xff0c;我们下面说解决方案&#xff09; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns…

使用工厂模式解决设计问题

工厂设计模式是面向对象环境中最常用的模式之一。 再次来自“创意设计”模式类别&#xff0c;即有关对象创建的所有信息。 在某些情况下&#xff0c;对象的创建很复杂&#xff0c;可能需要某种程度的抽象&#xff0c;以便客户端代码无法意识到这些复杂性和内部实现细节。 在某些…

103. Binary Tree Zigzag Level Order Traversal

二刷。 BFS&#xff0c;基本习惯上用Iterative的做法来做&#xff0c;就是QUEUE。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ public class Solution…

java多线程系列13 设计模式 Future 模式

Future 模式 类似于ajax请求 页面异步的进行后台请求 用户无需等待请求的结果 就可以继续浏览或者操作 核心就是&#xff1a;去除了主函数的等待时间&#xff0c;并使得原本需要等待的时间段可以用于处理其他业务逻辑 JDK内置实现Future模式演示一下 public class RealData im…

lodop转到其他html页面,Lodop实现打印功能

思路&#xff1a;1、在 html 页面引入 LodopFuncs.js 文件&#xff0c;并用 object 标签和 embed 标签获取 lodop 对象2、在 js 中获取 html 页面中的 object 和 embed 对象&#xff0c;并使用getLodop() 方法得到 lodop 对象3、实现打印功能&#xff0c;以下三步是必需的初始化…

完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

Primefaces AutoComplete&#xff0c;JSF转换器 这篇文章从第一部分和第二部分继续。 JSF拥有Converter工具&#xff0c;可以帮助我们从用户视图中获取一些数据并将其转换为从数据库或缓存中加载的对象。 在“ com.converter”包中&#xff0c;创建以下类&#xff1a; packa…

html5首屏加载乐山暴雨,发布前端项目时因chunk-vendors过大导致首屏加载太慢,Vue Build时chunk-vendors的优化方案...

这个优化是两方面的&#xff0c;前端将文件打包成.gz文件&#xff0c;然后通过nginx的配置&#xff0c;让浏览器直接解析.gz文件。1、compression-webpack-plugin插件打包.gz文件安装插件npm install --save-dev compression-webpack-plugin或者yarn add compression-webpack-p…

width:100vh与min-height:calc(100vh + 51px)

vh:相对于视窗的高度&#xff0c;那么vw:则是相对于视窗的高度。 “视区”所指为浏览器内部的可视区域大小&#xff0c;即window.innerWidth/window.innerHeight大小&#xff0c;不包含任务栏标题栏以及底部工具栏的浏览器区域大小。 详细vh的用法&#xff0c;大家可以参考http…

XML配置文件中的Spring配置文件

我的上一个博客非常简单&#xff0c;因为它涵盖了我从Spring 3.0.x到Spring 3.1.x的轻松升级&#xff0c;最后我提到可以将Spring模式升级到3.1&#xff0c;以利用Spring的最新功能。 在今天的博客中&#xff0c;我将介绍这些功能中最酷的功能之一&#xff1a;Spring配置文件。…

交大计算机专业怎样,计算机专业高校实力排名,上海交大第五,清华第二,第一毫无争议...

原标题&#xff1a;计算机专业高校实力排名&#xff0c;上海交大第五&#xff0c;清华第二&#xff0c;第一毫无争议计算机专业在近几年可谓是“大热”&#xff0c;众多考生抢破头也想当码农&#xff0c;背后的原因其实不难理解。互联网时代的到来&#xff0c;计算机早已渗透到…

python_day7 绑定方法与非绑定方法

在类中定义函数如果 不加装饰器 则默认 为对象作为绑定方法 如果增加 classmethod 是 以 类 作为绑定方法 增加 classmethod 是 非绑定方法&#xff0c;就是不将函数 绑定 ##################### class Foo: def func(self): print(self) classmethod def func…

Spring Security使用Hibernate实现自定义UserDetails

大多数时候&#xff0c;我们将需要在Web应用程序中配置自己的安全访问角色。 这在Spring Security中很容易实现。 在本文中&#xff0c;我们将看到最简单的方法。 首先&#xff0c;我们将在数据库中需要以下表格&#xff1a; CREATE TABLE IF NOT EXISTS mydb.security_role (…

python之路-面向对象

编程范式 编程是 程序 员 用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 &#xff0c; 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合&#xff0c;正所谓条条大路通罗马&#xff0c;实现一个任务的方式有很多种不同的方式&#xff0c; 对这…

西安邮电大学计算机科学与技术有专硕吗,2020年西安邮电大学计算机学院考研拟录取名单及排名!...

20考研复试调剂群&#xff1a;4197552812020年西安邮电大学计算机学院硕士研究生招生复试成绩及综合排名各位考生&#xff1a;现将我院2020年硕士研究生招生复试成绩及综合排名公布(最终录取名单及新生学籍注册均以“全国硕士研究生招生信息公开平台”备案信息为准)&#xff0c…