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生成器实现微线程编程的教程
Apr 13 Python
开始着手第一个Django项目
Jul 15 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
微信小程序登录session的使用
2019/03/17 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
Python字典操作简明总结
2015/04/13 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python实现猜拳小游戏
2020/04/05 Python
pycharm安装及如何导入numpy
2020/04/03 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
2015最新婚礼主持词
2015/06/30 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
MySQL添加索引特点及优化问题
2022/07/23 MySQL