本文记录做过求知相关的笔试题!
1. 写一个迭代器
class Iterator(object):
def __init__(self,data=[]):
if data:
self.data = data
else:
self.data = []
self.num = 0
def __iter__(self):
return self
def __next__(self):
if self.num < len(self.data):
ret = self.data[self.num]
self.num += 1
return ret
else:
raise StopIteration
iterator = Iterator([1,2,3,4,5])
print(iterator.__iter__())
print(iterator.__next__())
print(iterator.__next__())
print(iterator.__next__())
print(iterator.__next__())
print(iterator.__next__())
# for i in iterator:
# print(i)


2. 基于列表实现一个栈
class Stacklist(object):
def __init__(self):
self.data = []
def push(self,val):
self.data.append(val)
def pop(self):
self.data.pop()
def top(self):
return self.data[-1]
sl = Stacklist()
sl.push('thanlon')
sl.push('kiku')
print(sl.top()) # kiku
sl.pop()
print(sl.top()) # thanlon


3. 使用插入排序对57 68 59 52进行排序
# 首先比较前两个数57和68,因为57<68,所以不交换57和68的位置
57 68 59 52
# 接下来比较68和59,因为68>59,所以需要交换58和59的位置
57 59 68 52
# 因为59的前面还有57,所以比较57和59,因为57<59,所以不交换位置
57 59 68 52
# 再接下来比较68和52,因为52<68,所以交换52和68的位置
57 59 52 68
# 因为52的前面有59,所以比较59和52,因为59>52,所以交换位置
57 52 59 68
# 因为52的前面还有57,所以比较52和57,因为52<57,所以交换位置
52 57 59 68
4. 使用冒泡排序对57 68 59 52进行排序
# 57与68比较,57<68,不交换位置
57 68 59 52
# 68与59比较,68>59,交换位置
57 59 68 52
# 68与52比较,68<52,交换位置
57 59 52 68
# 57与59比较,57<59,不交换位置
57 59 52 68
# 59与52比较,59>52,交换位置
57 52 59 68
# 59与68比较,59<68,不交换位置
57 52 59 68
# 57与52比较,57>52,交换位置
52 57 59 68
5. 编程实现冒泡排序
6. 写出二叉树的前序遍历、中序遍历和后序遍历
前序遍历:根节点、左节点、右节点的顺序规则,
中序遍历:左节点、根节点、右节点的顺序规则,
后续遍历:左节点、右节点、根节点的顺序规则,
7. web攻击的方式有哪些
8. 设计一张用户评论表
9. == 和is的区别
来源:https://blog.csdn.net/Thanlon/article/details/102701607