Python的一些进阶学习-2017.08.10

来源:互联网 发布:打不开网络和共享中心 编辑:程序博客网 时间:2024/06/15 05:51
                 如何实现用户的历史记录

先写个猜数字的小程序:

    from random import randint    n=randint(0,100)    def guess(k):      if k==n:        print 'right'        return True     if k <n:        print '%s is less than n'%k     else:        print '%s is more than n'%k        return False   while True:     line =raw_input('please input a  number:')     if line.isdigit():       k=int(line)    if guess(k):       break

这里是一个猜数字的小程序,现在需要增加一个猜数字的历史记录:
涉及到两个类的使用:
1.collections.deque 设置一个队列来存储猜数字的历史记录(先进先出,设定一个max值来存几条记录),发现collections这个库功能杠杠的~
2.pickle 类用到pickle里面的dump函数将历史记录写到具体文件中
实现历史记录的保存,具体改完的代码如下:

   from random import randint   from collections import deque   import pickle   n=randint(0,100)   #建一个长度为4的队列   d=deque([],4)  def guess(k):    if k==n:      print 'right'      return True    if k <n:      print '%s is less than n'%k    else:      print '%s is more than n'%k      return False  while True:    line =raw_input('please input a  number:')    if line.isdigit():      k=int(line)      d.append(k)    if guess(k):       break    #将队列的记录写到文件      pickle.dump(d,open('history.txt','w'))   elif line == 'history' or line=='h?':     #从文件读记录     p=pickle.load(open('history.txt'))     print p
原创粉丝点击