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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python自动登录126邮箱的方法
Jul 10 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
Python读写/追加excel文件Demo分享
May 03 Python
详解python单元测试框架unittest
Jul 02 Python
Numpy之文件存取的示例代码
Aug 03 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
一行python实现树形结构的方法
Aug 09 Python
python实现两个字典合并,两个list合并
Dec 02 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
Python pickle模块常用方法代码实例
Oct 10 Python
Python Django路径配置实现过程解析
Nov 05 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时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php实现的http请求封装示例
2016/11/08 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
详解Webpack loader 之 file-loader
2018/11/07 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
应届生保险求职信
2013/11/11 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python
Win10 Anaconda安装python-pcl
2022/04/29 Servers