python实现猜数字游戏(无重复数字)示例分享


Posted in Python onMarch 29, 2014
import time, random
class GuessNum:
    def __init__(self):
        self._num = ''
        self.input_num = []
        self.count = 1                                      #猜对所用次数
        self.sec = 0                                           #猜对所用时间
        self._generate_num()
    def _generate_num(self):                        #产生不重复的四个数字
        seq_zton = list(range(10))
        for i in range(0, 4):
            a = str(random.choice(seq_zton))   #选出一个数字
            self._num += a
            seq_zton.remove(int(a))                 #注意a的类型
        self.sec = time.clock()                          #开始计时
    def check_answer(self):
        return self._num
    def check_input(self):
        num_pos, num_value = 0, 0               #位置对和数值对的分别的个数
        tmp = input("Please input the number you guess(No repetition),or 'c' to check the answer:")
        if tmp == 'c':
            print(self.check_answer())
            tof = self.check_input()
            return tof
        elif not tmp.isalnum or not len(tmp) == 4:
            print("Wrong format!")
            tof = self.check_input()                #需要优化
            return tof
        self.input_num = list(tmp)
        lst_temp = list(self._num)
        if self.input_num == lst_temp:          #猜对
            self.prt_vic()
            return True
        for i in lst_temp:
            if i in self.input_num:
                if lst_temp.index(i) == self.input_num.index(i):        #位置也相同
                    num_pos += 1
                    num_value += 1
                else:
                    num_value += 1
        self.prt_state(num_pos, num_value)
        self.count += 1
        return False
    def prt_state(self, num_pos, num_value):
        print("You've got %d numbers with the right position and %d numbers with the right value only" % (num_pos, num_value))
    def prt_vic(self):
        t = time.clock()
        self.sec = t - self.sec
        print("Congratulations!You have successfully got the right number!")
        print("%d times and %.2f sec in total to get the right answer" % (self.count, self.sec))
gn = GuessNum()
while True:
    ss = gn.check_input()
    if ss:
        b = input("Continue? y/n:")
        if b == 'n':
            break
        else:
            gn = GuessNum()
            continue
Python 相关文章推荐
探寻python多线程ctrl+c退出问题解决方案
Oct 23 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
python3 shelve模块的详解
Jul 08 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
Python绘制KS曲线的实现方法
Aug 13 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
python celery分布式任务队列的使用详解
Jul 08 Python
构建高效的python requests长连接池详解
May 02 Python
python中wheel的用法整理
Jun 15 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
使用python实现扫描端口示例
Mar 29 #Python
Python Trie树实现字典排序
Mar 28 #Python
python实现探测socket和web服务示例
Mar 28 #Python
python实现目录树生成示例
Mar 28 #Python
python改变日志(logging)存放位置的示例
Mar 27 #Python
使用python删除nginx缓存文件示例(python文件操作)
Mar 26 #Python
python实现ip查询示例
Mar 26 #Python
You might like
php学习之 数组声明
2011/06/09 PHP
CentOS安装php v8js教程
2015/02/26 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
在Django框架中运行Python应用全攻略
2015/07/17 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
django 常用orm操作详解
2017/09/13 Python
在python中bool函数的取值方法
2018/11/01 Python
Python中作用域的深入讲解
2018/12/10 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
赔偿协议书范本
2014/04/15 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
医药销售自我评价200字
2014/09/11 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫