今日小计
今天跟平常没什么两样,跟老师聊了聊自己的想法,晚上学习了一下AD的知识(不是广告啊,推荐凡亿的那款免费的教程,我觉着不错,跟着学了一遍,忘了好多,今天开始再温习一遍),希望我能一直陪着那个Ta,希望吧,一切都是最好的安排…进入正题:
本周的主要内容是:数据结构与算法相关问题与解决技巧
Python必刷题之五:
- 如何实现用户的历史记录功能(最多n条):
现实问题:制作一个小的游戏(猜数字),添加一个历史记录的功能,显示用户最近猜过的数字,怎样实现?
解决方法解读:
使用容量为n的队列存储历史记录
使用标准库collections中的deque,他是一个双端循环队列
程序退出前,可以使用pickle将队列对象存入文件,再次运行程序即将其导入
注意:这里需要一个方法就是判断输入字符串是否是数字或者是字母
s=input("please inupt string")
print(s.isdigit()) #用isdigit函数判断是否数字
print(s.isalpha()) #isalpha判断是否字母
print(not (s.isalpha() or s.isdigit()) and s.isalnum())
#isalnum判断是否数字和字母的组合
from random import randint
from collections import deque
import pickle
N=randint(0,100)
history=deque([],5)
print(N)
def Guess(num):
if num<N:
print('This number is litter than True one.')
return False
elif num>N:
print('This number is bigger than True one.')
return False elif num==N:
print('You Win')
return True
while True:
line=input()
if line.isdigit():
#print('isDigit')
history.append(line)
if Guess(int(line)):
break
elif line=='history' or line=='his':
print(history) elif line=='exit':
#pickle.dump(history,open('c:\Users\昨天\Desktop\history.txt','w'))
break
##输出结果:
需要猜的数字——》84
36
This number is litter than True one.
69
This number is litter than True one.
88
This number is bigger than True one.
history
deque(['36', '69', '88'], maxlen=5)
exit
在我们退出该系统是应该需要加入我们的文件读取操作,这里推荐大家看一下廖雪峰的文件操作的相关文章,一下附链接:如有侵犯请联系我删除:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640
其实我觉得这些网上的教程都还不错,想要学习的话,可以配合这里的题,来一同学习,声明没有做广告哈!!!
每日小结
初中时的校训是:“每天进步一点点”,所以,每天合理安排自己的时间还是可以学习不少东西的,如果有想要学习Python,Java,Android,物联网,单片机的同学,可以与我一起学习,直接留言就好了,加油,努力,永远不要放弃!