就是要学社区 QQ群组:646854445
你并非已无懈可击,所以你不能逃避问题,拒绝学习!

019孤荷凌寒从零开始学区块链第19天逐过程分析区块链每一步的执行情况

|阅读量:79 |发布于2020-07-29 07:37 : 39


正文内容

github: https://github.com/lhghroom/Self-learning-blockchain-from-scratch

【主要内容】

今天继续分析从github上获取的开源代码怎么实现简单区块链的入门知识,共用时间34分钟。

(此外整理作笔记花费了约72分钟)

详细学习过程见文末学习过程屏幕录像。

今天主要开始分析昨天断点调试后得到的变量中间值,进而反推执行过程,以注释之前还不理解 的代码部分,发现我学习的难点还在于 密码学部分,及基础的python编码部分。



【学习笔记】

一、Python的字符串编码处理:

参考博文: https://blog.csdn.net/qq_40134903/article/details/80710882感谢博主的分享

今天才算是补学到了基础知识部分的两个方法:

字符串对象有两个方法:

1.

字符串对象.encode(要转换成为的字符串编码类型描述字符串)

encode()方法是指将【字符串对象】的编码(由unicode编码)转换为【要转换成为的字符串编码】

如:

str1.encode(‘utf-8’)

就表示要将str1(str1的原本编码格式应当是:unicode编码)的编码格式转换为【utf-8】编码格式。


2.

字符串对象. decode(字符串对象目前的编码类型描述字符串)

decode()方法是将【字符串对象】由【字符串对象目前的编码】格式转换回【unicode】编码格式。


这就是说,在Python的字符串处理编码中,

【unicode】编码作为中间交换件存在。是python3默认存在的编码格式。


二、byte字符串编码处理:

(一)python的字符串类别只有两种

1.非byte(字节)模式的字符串:

就是说字符串之前没有使用前缀b

如:

‘我是孤荷凌寒’

也可能是:

u’我的qq号是:578652607’


2.byte(字节)模式的字符串

就是说字符串之前使用了前缀:b

如:

b’ass8932436236’

此时分两种情况:

第一种情况:

前缀b后面的字符串中使用的是用转义符:

\x

来转义表示的

十六进制的字符编码

如:

\x38

这表示一个字符的编码。

(二)不同byte字符串表示方法的互相转换

首先要引用模块:

import binascii

此模块中有两个相对的方法可以实现互换;

1.

hexlify(十六进制编码表示的byte字符串)

方法

hexlify()方法将上面用【十六进制编码表示的byte字符串】,转换成用ASCII字符编码表示的字符编码,仍然是byte字符串


2.

unhexlify(其它编码格式表示的byte字符串)

方法:

注意这儿我并不确定此方法能转换的必须是【其它编码格式表示的byte字符串】,也许任何字符串都行,还没有作具体研究。

unhexlify()方法将一个用ascii(其实这里也可能原本是Unicode编码)编码表示 的字符串(我估计此处不一定是byte字符串)

转换为,用十六进制(即字符串本身内容用\x转义表示编码)编码的byte字符串【同步语音笔记】

https://www.ximalaya.com/keji/19103006/261066516


【学习过程屏幕录屏】

链接:https://pan.baidu.com/s/10c3ErEFxKnCN9-Bz56Mwpg

提取码:js8y

https://www.bilibili.com/video/BV1EE411H7Mj/


【就是要学】社区
一个平等,纯粹的社群
本社群旨在为真正愿意不断学习,终身成长的朋友提供一个平等互助互相鼓励的清洁纯粹的学习交流的平台。
加入社群将获得
1、与真正终身学习者为伍
2、在榜样带领下坚持每天学习,终身成长
3、养成记录时间日志,成功日记的习惯


【就是要学】社区QQ群:646854445





【返回首页】