20201307 梁辰鱼《信息安全专业导论》第三周学习总结
作业信息
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/2020-2021-1fois/homework/11249 |
---|---|
这个作业要求在哪里 | ( |
这个作业的目标 |
|
作业正文 |
教材学习内容总结
这周我看了计算机科学概论的第2,3章,学了2进制和各种进制的转化,虽然自学过,但这次又补充了新的知识点,例如原码,补码,和反码,还有python的3,4章,自学了一大堆东西(脑壳疼),while语句,for迭代循环,还有27页上面一堆列表的方法,append,count,insert(index,item)等等。
代码调试的问题和解决过程
这周,调试了一堆代码,不禁让我感到有压力,但是成功的滋味也很好
首先是base64代码的调试:过程中自学了utf-8,这解决了ASCII编码转换汉字时不可见的问题,
a=base64.b64encode(str)——把刚才输入的str的编码值赋给a
b=base64.b64decode(a)——把a(编码后的字符串)解码后的值赋给b
这是令我感触比较深的两行代码,基于base64进行编码和解码
然后是IEEE754浮点数,这个理解起来复杂,但是其实就是符号位S加上阶码E加上小数点后面的M,最后补0到32位,
这其中问题也不少,首先就是使用input()函数实现交互式输入,刚开始什么都不会,这个就是自学了,
然后还有对输入内容,需要用到eval()命令!!。。不然输入的数字不算数字。。只是字符串。。
之后才是最复杂的,我把输入的数值的整数部分和小数部分分开并分别取2进制字符串,我用了很复杂的连续除2,把商填在一个空列表中,这其中就用到了while语句,当商为0时停止,这里又是自学部分,break命令的运用来破除循环,
列表和字符串之间的转换我也是自学 str3="".join(list3) 这是代表性代码,因为其中用到了bin()函数,所以要去掉前面的0b,我就只能把字符串先变成列表然后倒序排列,然后用lst.pop()删除最后一项,
添加0也是用到了while语句,又是自学开始,先把字符串的长度的值赋给a,每添加一个0就把a+1,一直到位数到达32后破除循环
罗马数字,无疑是最难的一个,我自学了一堆东西,首先就是这个字典,我需要先编一个字典,把罗马符号和对应的数字一个个对应起来(之前尝试了许多方法都没成功),我还学了一个简便写法 a = a +1 等同于 a +=1 然后就是重点了,运用遍历命令!!!把字符串中的罗马数字遍历!!!(因为罗马数字的特殊性,所以看加减数字只需要看它的下一位,如果下一位比前一位大,那么前一位代表的符号就是负号,所以这里充分运用了字典和遍历的配合。)
omit = -1,这个命令,头疼,是忽略序列位是-1的意思,用它来解决遍历中需要做减法的时候,就是当有负数的出现,直接用下一位去减,这样就可以忽略下一位不用遍历做加法。
感悟
-
遇到问题解决不了的情况还是不要放弃,尝试别的方法直到解决
-
自学真的是一门手艺,不自学的话真的有好多都不懂,不懂时自己就要不断尝试,查找资料,学习代码,希望下回能做的更好
-
(ps.bmp实在是不会了)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 65/65 | 2/2 | 17/17 | |
第二周 | 65/130 | 4/6 | 10/27 | |
第三周 | 260/390 | 3/9 | 20/47 |