我们制作一个简单的猜数字的小游戏,添加历史记录功能,显示用户最近猜过的数字,如何实现?
from random import randint
N = randint(0,100)
def guess(k):
if k == N:
print('right')
return True
if k < N:
print('猜小了')
else:
print('猜大了')
return False
while True:
line = input('输入一个数字:')
if line.isdigit():
k = int(line)
if guess(k):
break
接下来,我们看一下如何记录最近输入的五次值。
from collections import deque
q = deque([],5)
q.append(1)
q.append(2)
q.append(3)
q.append(4)
q.append(5)
在次添加,会把第一次添加的踢出。
q.append(6)
deque([2, 3, 4, 5, 6])
接下来代码改写
from random import randint
from collections import deque
N = randint(0,100)
history = deque([],5)
def guess(k):
if k == N:
print('right')
return True
if k < N:
print('猜小了')
else:
print('猜大了')
return False
while True:
line = input('输入一个数字:')
if line.isdigit():
k = int(line)
history.append(k)
if guess(k):
break
elif line == 'history' or line == 'h?':
print(list(history))
这样虽然完成了功能,但是当程序运行结束,关闭程序保存的记录就消失了。因为是保存到内存中的,当程序关闭,内存就释放了。
写入
pickle.dump(history,open('guess.txt','wb'))
读写
list(pickle.load(open('guess.txt','rb')))
如果需要Python入门课程添加本猿VX:logic_juran即可,限时免费领取。