开发相关笔试题总结(Python)

无人久伴 提交于 2019-12-02 12:47:49

本文记录做过求知相关的笔试题!

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进行排序
# 首先比较前两个数5768,因为57<68,所以不交换5768的位置
57 68 59 52
# 接下来比较6859,因为68>59,所以需要交换5859的位置
57 59 68 52
# 因为59的前面还有57,所以比较5759,因为57<59,所以不交换位置
57 59 68 52
# 再接下来比较6852,因为52<68,所以交换5268的位置
57 59 52 68
# 因为52的前面有59,所以比较5952,因为59>52,所以交换位置
57 52 59 68
# 因为52的前面还有57,所以比较5257,因为52<57,所以交换位置
52 57 59 68
4. 使用冒泡排序对57 68 59 52进行排序
# 5768比较,57<68,不交换位置
57 68 59 52
# 6859比较,68>59,交换位置
57 59 68 52
# 6852比较,68<52,交换位置
57 59 52 68
# 5759比较,57<59,不交换位置
57 59 52 68
# 5952比较,59>52,交换位置
57 52 59 68
# 5968比较,59<68,不交换位置
57 52 59 68
# 5752比较,57>52,交换位置
52 57 59 68
5. 编程实现冒泡排序
6. 写出二叉树的前序遍历、中序遍历和后序遍历

前序遍历:根节点、左节点、右节点的顺序规则,
中序遍历:左节点、根节点、右节点的顺序规则,
后续遍历:左节点、右节点、根节点的顺序规则,

7. web攻击的方式有哪些
8. 设计一张用户评论表
9. == 和is的区别
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!