python(历史记录)

案例


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

分析


from random import randint
from collections import deque
import pickle

N = randint(0, 100)  # 产生一个0-100的整数
history = deque([], 5)  # 产生一个容量为5个数的双端循环队列(双头栈:先进先出,), [1, 2, 3, 4, 5] => [2, 3, 4, 5, 6]

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 = input("Please input a number: ")
    # 如果输入的是数字,但需要注意的是,用户输入进来的其实都是字符串,这里的判断是判断字符串的值是否为数字
    if line.isdigit():  
        k = int(line)  # 因为line是字符串,所以还需要再强制转换为int类型的数字
        history.append(k)
        if guess(k):
            break
    elif line == 'history'or line == 'h?':
        print(list(history))

# 需要注意的是,在Python3中,必须注明文件的写入和读取方式(‘wb’,‘rb’),否则会直接报错
pickle.dump(history, open('history', 'wb'))  # 写文件
q2 = pickle.load(open('history', 'rb'))  # 读文件

print(q2)

你可能感兴趣的:(python(历史记录))