Pro158-泡面Python[Py#058]——5min-EasyCase 数值转换

Python

3分钟练习

数列计算和转换

 今天我们来学习一下,如何将下列的数值转换成为16进制发送方式。

参数表

 在这里我不能说明这是什么参数,但是可以说这类型的参数可以用在现在非常非常多互联网、制造业的程序上。
【吉米:我想问下为什么课程突然的跳脱?】
 是这样的,我写这些教程的时候,会切换电脑,例如在公司写,在宿舍写,在家写,在M记写,每个地点都会换电脑。所以有时候看到是 Idle ,有时候看到是 Anaconda 的 Spyder 或者 Jupyter 甚至是文本文件。
 至于内容上的跳脱,一般我的内容是有一个脉络的,当时会临时根据当天遇到的实际状况改为别的实用内容。做完这些特别篇又会转回之前的设定的方向。就类似玩游戏会有主线和支线这样的结构一样。


代码构建和效果展示

转换要求

 要将这些数值转换成分钟数值,以便于发送给终端设备。
 因此我们会遇到一种问题,就是转换成分钟后,这些数值会非常大,而传输的时候只能有 4位 16进制数,也就是 FFFF (65535)为界限,这样会需要高低位传输。

def cut(num):
    h = 0
    l = 0
    if num < 65536:
        l = num
    else:
        h = num // 65536
        l = num % 65536
    return h,l

useri = 65537
print(cut(useri))

useri = int(input())
print(cut(useri))

 正如我们所知,十六进制的 FFFF 对应 十进制的 65535,当满足 65536 的时候,就会往高位进一位,这么就可以通过 // 整除 和 &=% 求余两种特殊除法来完成这一步。

Pro158-泡面Python[Py#058]——5min-EasyCase 数值转换_第1张图片
分割高低位

 我们可以结合以前的 while 循环,做成一个查询式的死循环。

Pro158-泡面Python[Py#058]——5min-EasyCase 数值转换_第2张图片
嘛最好不要这样做,会显得很萌

数列计算

 我们可以通过观察得出结论,这些时间是在500到3000之间,公差为250小时,3000到5000之间,公差为500小时,最后一个公差是1000小时。
 这里我们可以用一个简单的限制结尾的循环体,内嵌 if-else 判断,来完成一个自动生成数列。不过鉴于篇幅关系,已经快超过5分钟了,所以这个内容我们明天再学习。·

你可能感兴趣的:(Pro158-泡面Python[Py#058]——5min-EasyCase 数值转换)