【python】功能函数集合

业余 python 编码记录
实现 crc 数据校验功能
主要记录日常用到的函数实现基本功能

python基本功能函数集合

1. 函数功能实现

1.1 实现 crc 校验功能

输入数组:dara = [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00]
输出数组:data = [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00 ,0x23 ,0x46]
其中,0x230x46 是校验位

函数实现:

def crc16Cal(datas):
    crc16=0xFFFF
    poly=0xA001
    for data in datas:
         #a=int(data,16)   若输入是字符形式,则用这个方式转为 int 类型
         #print(a)
         crc16 = data ^ crc16
         for i in range(8):
            if (crc16 & 1) == 1 :
                crc16 = crc16 >> 1
                crc16 = crc16 ^ poly
            else :
                crc16 = crc16 >> 1

    crc16=hex(int(crc16))      # 转化为 16进制显示 
    #crc16=crc16[2:].upper()   # 去掉 0x
    return crc16

函数测试

print("test python")
datas= [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00]
print("input arry")
for i in datas :
  print(hex(i))
a = crc16Cal(datas) & 0x00ff
b = crc16Cal(datas) >> 8
datas.append(a)    # 向数组中追加元素
datas.append(b)  
print("output arry")
for i in datas :
  print(hex(i))
datas.pop()    # 将数组中的最后两个新加的元素 pop 出来,否则数组会原来越长
datas.pop()  

在这里插入图片描述
本部分参考:python实现crc16校验

Python提供了丰富的集合函数,以下是其中一些常用的函数: 1. 创建集合 使用`set()`函数可以创建一个空集合,也可以将其他序列类型转换为集合类型。 ```python # 创建空集合 set1 = set() print(set1) # 输出:set() # 将列表转换为集合 list1 = [1, 2, 3, 4, 5] set2 = set(list1) print(set2) # 输出:{1, 2, 3, 4, 5} ``` 2. 添加元素 使用`add()`方法可以向集合中添加一个元素,使用`update()`方法可以向集合中添加多个元素。 ```python set1 = {1, 2, 3} set1.add(4) print(set1) # 输出:{1, 2, 3, 4} set1.update([5, 6, 7]) print(set1) # 输出:{1, 2, 3, 4, 5, 6, 7} ``` 3. 删除元素 使用`remove()`方法可以删除集合中的一个元素,如果元素不存在则会抛出异常。使用`discard()`方法也可以删除集合中的一个元素,但如果元素不存在则不会抛出异常。 ```python set1 = {1, 2, 3, 4, 5} set1.remove(3) print(set1) # 输出:{1, 2, 4, 5} set1.discard(4) print(set1) # 输出:{1, 2, 5} ``` 4. 集合运算 Python提供了多种集合运算,包括并集、交集、差集等。 ```python set1 = {1, 2, 3} set2 = {3, 4, 5} # 并集 set3 = set1.union(set2) print(set3) # 输出:{1, 2, 3, 4, 5} # 交集 set4 = set1.intersection(set2) print(set4) # 输出:{3} # 差集 set5 = set1.difference(set2) print(set5) # 输出:{1, 2} ``` 5. 判断是否有交集 使用`isdisjoint()`方法可以判断两个集合是否有交集,如果没有交集则返回True,否则返回False。 ```python set1 = {1, 2, 3} set2 = {4, 5, 6} set3 = {3, 4, 5} print(set1.isdisjoint(set2)) # 输出:True print(set1.isdisjoint(set3)) # 输出:False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步、至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值