《信息安全导论》第八周学习总结
课上
在本周的学习中,我了解了各种初级、高级的程序语言,了解到了它们的程序泛式,知道了其分为命令式(面向对象、面向过程)、声明式(函数式、逻辑式)。
了解了编译器、解释器。除此之外,还了解了高级程序语言的一些基本结构,如输入/输出结构、控制结构、嵌套逻辑。
另外,还学习了面向对象语言的功能性:封装、继承、多态。
课下
在本周,老师所布置的作业难度提高了一大截。因此,我并没有完全意义上做完老师的作业。但也因此学习到了许多,也了解到了自己知识还比较浅薄。
四则运算程序
在该作业的完成中,我遇到了极大的困难。首先,在参数传递上,我就云里雾里,上网查了很久,也只是一知半解。
在写代码时,可能是学习python的时日还短,以自己的能力只能实现一部分功能,很多要求都无法实现。
之后,便向同学借了一份代码进行参考和学习。尽管如此,这次艰难的作业还是对我有很大的帮助。
以下是自己写的代码
import sys import os def fs(): import random from fractions import Fraction fz = random.randint(1,10) fm = random.randint(1,10) if fm == 0: b = fz else: b = Fraction(fz,fm) return b def szys(): import random sym = ['+', '-', '*', '÷'] f = random.randint(0, 3) n1 = fs() n2 = fs() if f== 0: result = n1 + n2 elif f == 1: n1, n2 = max(n1, n2), min(n1, n2) result = n1 - n2 elif f== 2: result = n1 * n2 elif f == 3: while n2 == 0: n2 = fs() result = n1 / n2 print(n1, sym[f], n2, '= ', end='') return result sym = ['+', '-', '×', '÷'] n=int(input('输入所需要的题目数量')) print(n) result =[] class ex(object): def __init__(self, filename="Default.log"): self.terminal = sys.stdout self.log = open(filename, "a") def write(self, message): self.terminal.write(message) self.log.write(message) def flush(self): pass path = os.path.abspath(os.path.dirname(__file__)) type = sys.getfilesystemencoding() sys.stdout = ex('题目和答案.txt') m=0 while m<=(n-1): print(m+1,end='、') result .append(szys()) print(' ') m=m+1 m=0 print('对应的答案:') while m<=(n-1): print(m+1,'、',result [m]) m=m+1
向大佬借鉴学习的代码:Arithmetic-master
俄罗斯方块
在这个作业中,我了解了pygame这个库。了解了俄罗斯方块的运行原理,并着手进行了一次娱乐意味浓厚的改造:将方块的形状作了改动,效果如图
在改动的过程中,由于只是初次接触pygame,也出现了一些问题不能得到很好的解决,就是在上无法实现旋转,应该是在代码上有所缺漏,但不知是何处出了问题,在本周的时间里会继续尝试解决。
俄罗斯方块的代码:teris