2021-2022-1 20211427 《信息安全专业导论》第七周学习总结

作业信息

2020-2021-1信息安全专业导论|
2020-2021-1信息安全专业导论第七周作业
[学习目标] |数组与链表
基于数组和基于链表实现数据结构
无序表与有序表


子程序与参数|
作业正文

教材学习内容总结

数组是同构项目的有名集合,可以通过单个项目在集合中的位置访问它们。
列表可以被形象化为链式结构。列表的三个属性特征:项目是同构的,项目是线性的,列表是变长的。
链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。
数组是内嵌结构,列表是抽象结构。列表应用于数组中。
数据结构:一种抽象数据类型中的复合数据域的实现。
树的分层体系结构为高层分类,随着向下移动,标签会变得更加具体,每一个节点下方都可能会有许多的节点。
图:由一组节点和一组把节点相互连接起来的边构成的数据结构。
顶点:图中的节点。
边(弧):表示图中两个节点的连接的顶点对。

教材学习中的问题和解决过程

问题1:树与图的区别与联系
解决过程:树中一个节点至多只有一个指向它的节点,图没有这种约束。二者都是表示存在层次结构关系的数据结构。

代码调试中的问题和解决过程

问题1:输入的值是不同的类型时进行计算时会出错。
解决过程:使用int()将数据类型转换为整数。

问题2:计算类型的代码运行后无法输出值,也不停止运行。
解决过程:检查如果Python的代码缩进错误可能会出现这种情况。

[代码托管]

`# coding=utf-8

代码文件: ch08/ch8_6_1.py

定义加法函数

def add(a, b):
return a + b

定义减法函数

def sub(a, b):
return a - b

定义计算函数

def calc(opr):
if opr == '+':
return add
else:
return sub

f1 = calc('+') # f1实际上是add()函数
f2 = calc('-') # f2实际上是sub()函数、
print("10 + 5 = {0}".format(f1(10, 5)))
print("10 - 5 = {0}".format(f2(10, 5)))`

coding=utf-8

代码文件: ch08/ch8_6_2.py

提供过滤条件函数

def f1(x):
return x > 50 # 找出大于50元素

datal = [66, 15, 91, 28, 98, 50, 7, 80, 99]
filtered = filter(f1, datal)
data2 = list(filtered) # 转换为列表
print(data2)

coding=utf-8

代码文件: ch08/ch8_6_3.py

提供变换规则的函数

def f1(x):
return x * 2 # 变换规则乘以2

data1 = [66, 15, 91, 28, 98, 50, 7, 80, 99]
mapped = map(f1, data1)
data2 = list(mapped ) # 转换为列表
print(data2)

上周考试错题总结

Which language is actually executed by the central processing unit of a computer?
A.High-level language
B.Assembly language
C.Machine language
D.Virtual language
E.Accumulator language
正确答案:C
简单计算机的中央处理器执行的是机器语言。

Which of the following is true about black-box testing?
A. The test cases are based on the code.
B. The test cases are based on the input.
C. The test cases are based on the output.
D. The testing is performed by dedicated testers.
E. The testing is performed each time the program changes.
正确答案:B
黑箱测试中的测试用例基于输出。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 50/50 1/1 8/8
第二周 60/110 3/4 9/17
第三周 80/190 1/5 8/25
第四周 160/350 1/6 9/34
第五周 450/800 1/7 13/47
第六周 700/1500 1/8 16/63
第七周 700/2200 3/11 16/79
  • 计划学习时间:15小时

  • 实际学习时间:16小时

参考资料