20201307 梁辰鱼《信息安全专业导论》第三周学习总结

2020-2021-1 20201307 《信息安全专业导论》第3周学习总结

作业信息

这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2020-2021-1fois/homework/11249
这个作业要求在哪里 (2020-2021-1信息安全专业导论第三周作业)
这个作业的目标
作业正文 https://www.cnblogs.com/yu15141310373/p/13831718.html

 

教材学习内容总结

这周我看了计算机科学概论的第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  
 

 

posted @ 2020-10-17 16:46  20201307梁辰鱼  阅读(84)  评论(0编辑  收藏  举报