您的位置:首页 > 其它

2-7实现用户的历史记录功能

2017-03-23 18:58 369 查看
# -*- coding:utf-8 -*-

from random import randint
from collections import deque
import pickle

# 问题描述:
# 所使用的deque(双循环队列)处理结果都存在内存当中,当再次运行程序将会消失

# 解决方案:
# 可以在程序推出前,使用pickle将队列对象存入文件,再次运行程序时将其导入
# pickle.dump(q, open('history', 'w'))
# q2 = pickle.load(open('history'))

N = randint(0, 100)
history = deque([], 5) # deque() 的第一个参数是初始值,第二个是size
history = pickle.load(open('history.txt'))

def guess(k):
if k == N:
print 'right'
return True
if k < N:
print '%s is less-than N' % k
else:
print '%s is greater-than N' % k
return False

while True:
line = raw_input('please input a number:')
# 使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的
# input返回的是数值类型,如int,float && 会计算字符串中的数字表达式
# raw_inpout返回的是字符串类型,string类型

if line.isdigit():         # 检测字符串是否只有数字组成
k = int(line)          # 必须转化成int类型
history.append(k)
if guess(k):
pickle.dump(history, open('history.txt', 'w'))
break
elif line == 'history' or line == 'h?':
print list(history)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: