zoukankan      html  css  js  c++  java
  • 励志成为优产的母猪--------猜数游戏 ,历史记录,pickle保存,队列deque

    # pickle 可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等),存档以文件的形式保存   参见 https://www.cnblogs.com/abobo/p/8080447.html
    # collections是Python内建的一个集合模块,提供了许多有用的集合类。参见 https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001411031239400f7181f65f33a4623bc42276a605debf6000
     1 # coding: utf-8
     2 import random
     3 import pickle
     4 from collections import deque
     5 
     6 n = random.randint(0, 100)  # 随机找出0-100之中的数
     7 history_list = deque([], maxlen=5)  # 限制最大长度
     8 try_num = 0
     9 print(n)
    10 
    11 
    12 def pk(m):
    13     if m != n:
    14         if m > n:
    15             print("大了")
    16         else:
    17             print("小了")
    18         return False
    19     return True
    20 
    21 
    22 def h_print():# pickle取
    23     ret = pickle.load(open('history', 'rb'))
    24     return ret
    25 
    26 
    27 def history(history_list): # pickle存
    28     history_list = list(history_list)
    29     pickle.dump(history_list, open('history', 'wb'))
    30 
    31 
    32 while True:
    33     try_num += 1
    34     if try_num > 10:
    35         print("尝试次数过多,您已经笨死了!!!")
    36         break
    37     m = input("输入您的答案:")
    38     try:                               # 异常处理 防止用户输入字母
    39         # m = input("输入您的答案:")
    40         if len(m) == 0:
    41             print("not null")
    42         m = int(m)
    43         history_list.append(m)
    44         history(history_list)
    45         if pk(m) == True:
    46             print("以您的智商,居然TM答对了")
    47             break
    48     except ValueError:
    49         if m == "h":
    50             print("您猜数的历史记录:")
    51             print(h_print())
    52         else:
    53             print("格式有误,请输入整数字")


    # 注解:使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。
    #
    # deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈
  • 相关阅读:
    如何将DataTable转换成List<T>呢?
    mySql中SUBSTRING_INDEX函数用法
    常用 Git 命令清单
    git学习笔记
    MySql 获取表的字段名
    mysql从身份证号中提取生日、性别
    年月日转大写汉字
    ExtJs服务器端代理(Ajax)
    ExtJS客户端代理
    ExtJS 数据模型
  • 原文地址:https://www.cnblogs.com/jum-bolg/p/10801195.html
Copyright © 2011-2022 走看看