如何实现用户的历史记录功能(最多n条)?

2019-02-09  本文已影响0人  Diolog

实际案例:

我们制作了一个简单的猜数字的小游戏,添加历史记录功能,显示用户最近猜过的数字,如何实现?

首先我们先实现猜数字的小游戏:

from random import randint
N = randint(0,100)
def guess(k):
  if k == N:
    print('right')
  if k<N:
    print('{0} is less-than N'.format(k))
  else:
    print('{0} is greater-than N'.format(k))
  return False

while True:
  line = input('please input a number: ')
  if line.isdigit():
    k = int(line)
    if guess(k):
      break

给该程序保存最近的5次猜数的历史纪录。

解决方案:

deque的用法
from collections import deque
q = deque([],5)
这里就定义了一个长度为5的队列,如果数量超过5个,新添加的元素将会把第一个元素挤掉

接下来我们开始给猜数游戏添加历史记录

from random import randint
from collections import deque
N = randint(0,100)
history = deque([],5)
def guess(k):
  if k == N:
    print('right')
  if k<N:
    print('{0} is less-than N'.format(k))
  else:
    print('{0} is greater-than N'.format(k))
  return False

while True:
  line = input('please input a number: ')
  if line.isdigit():
    k = int(line)
    history.append(k)
    if guess(k):
      break
  elif line == 'history' or line == 'h?':
    print(list(history))

如果想要将history存储在本地磁盘上以便下次访问,可以使用pickle或者直接使用open进行文件处理。

上一篇 下一篇

猜你喜欢

热点阅读