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中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
在Python中操作字典之clear()方法的使用
May 21 Python
python实现聚类算法原理
Feb 12 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python 实现自动导入缺失的库
Oct 29 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python sep参数使用方法详解
Feb 12 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
如何编写python的daemon程序
Jan 07 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
js中的闭包实例展示
2018/11/01 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python读取Android permission文件
2013/11/01 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python 实现登录网页的操作方法
2018/05/11 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
新年抽奖获奖感言
2014/03/02 职场文书
六一节目主持词
2014/04/01 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
退休欢送会主持词
2015/07/01 职场文书
教学副校长工作总结
2015/08/13 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript
python标准库ElementTree处理xml
2022/05/20 Python