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 相关文章推荐
python3图片转换二进制存入mysql
Dec 06 Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
python模块常用用法实例详解
Oct 17 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
Python闭包的定义和使用方法
Apr 11 Python
python 学习GCN图卷积神经网络
May 11 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服务器实现多session并发运行
2006/10/09 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
激活 ActiveX 控件
2006/10/09 Javascript
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
express框架下使用session的方法
2019/07/31 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
python 循环遍历字典元素的简单方法
2016/09/11 Python
Django与JS交互的示例代码
2017/08/23 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
python logging添加filter教程
2019/12/24 Python
Python函数式编程实例详解
2020/01/17 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
高中家长寄语
2014/04/02 职场文书
理想演讲稿范文
2014/05/21 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Python读取和写入Excel数据
2022/04/20 Python