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

作业信息

2020-2021-1信息安全专业导论|
2020-2021-1信息安全专业导论第六周作业|
[学习目标] |Polya如何解决问题
简单类型与组合类型
复合数据结构
查找与排序算法
算法复杂度
递归
代码安全
作业正文

教材学习内容总结

Polya解决问题的方法:1.理解问题 2.设计方案 3.执行方案 4.回顾分析
数据有两种形式:不可分割的和复合的。数组是一种同构的结构,
给出了一个有名称的元素的集合和允许用户访问个别元素在结构中的位置。
排序是指将数组中的元素按一定的顺序排列。
排序算法:选择排序,冒泡排序,插入排序。
递归是算法调用它本身的能力,是一种重复循环的控制结构。
搜索是指在数组中寻找一个特定值的行为。
递归算法是指可以在子程序自身中出现子程序名的算法。
阶乘和二分检索实际上就是递归算法。

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

问题1:lambda()函数有怎样的作用和性质?
解决过程:lambda()是Python中的匿名函数,可以替换其他函数以减少代码量,
但lambda体部分只能包含一条语句,不能包含多条语句。

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

问题1:一段没有报错的代码在运行时出错
解决过程:Python对缩进敏感,对于Python的函数,在函数末尾打一个冒号后另起一行,
缩进一个tab后写函数内容。Python中函数内容的缩进必须相同才能正常运行。

问题2:Python中print指令不能直接输出一个未被定义的计算表达式
解决过程:用匿名函数lambda可以实现表达式的输出。

[代码托管]

`# coding=utf-8

代码文件: ch08/ch8_7.py

def calc(opr):
if opr == '+':
return lambda a, b: (a + b) # 替代add()函数
else:
return lambda a, b: (a - b) # 替代sub()函数

f1 = calc('+')
f2 = calc('-')
print("10 + 5 = {0}".format(f1(10, 5)))
print("10 - 5 = {0}".format(f2(10, 5)))
# coding=utf-8

代码文件: ch08/ch8_8.py

data1 = [66, 15, 91, 28, 98, 50, 7, 80, 99]

filtered = filter(lambda x: (x > 50), data1)
data2 = list(filtered)
print(data2)

mapped = map(lambda x: (x * 2), data1)
data3 = list(mapped)
print(data3)`

上周考试错题总结

暂无

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
  • 计划学习时间:15小时

  • 实际学习时间:16小时

参考资料