# pickle 可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等),存档以文件的形式保存 参见 https://www.cnblogs.com/abobo/p/8080447.html
# collections是Python内建的一个集合模块,提供了许多有用的集合类。参见 https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001411031239400f7181f65f33a4623bc42276a605debf6000
# coding: utf-8import randomimport picklefrom collections import deque n = random.randint(0, 100) # 随机找出0-100之中的数history_list = deque([], maxlen=5) # 限制最大长度try_num = 0print(n) def pk(m): if m != n: if m > n: print("大了") else: print("小了") return False return True def h_print():# pickle取 ret = pickle.load(open(‘history‘, ‘rb‘)) return ret def history(history_list): # pickle存 history_list = list(history_list) pickle.dump(history_list, open(‘history‘, ‘wb‘)) while True: try_num += 1 if try_num > 10: print("尝试次数过多,您已经笨死了!!!") break m = input("输入您的答案:") try: # 异常处理 防止用户输入字母 # m = input("输入您的答案:") if len(m) == 0: print("not null") m = int(m) history_list.append(m) history(history_list) if pk(m) == True: print("以您的智商,居然TM答对了") break except ValueError: if m == "h": print("您猜数的历史记录:") print(h_print()) else: print("格式有误,请输入整数字") # 注解:使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。## deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈
原文地址:https://www.cnblogs.com/jum-bolg/p/10801195.html
时间: 2024-10-27 05:29:00