# -*- 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)
2-7实现用户的历史记录功能
最新推荐文章于 2022-12-14 17:43:34 发布