[英]Python3.4 use remainder for byte
Python3.4.3声明字节类型不支持%。 有谁知道另一种执行余数模的方法。
我正在查看来自u3.py的LabJack设备代码,并尝试将代码从Python2更新到Python3.4.3。
def __init__(self, Dac, Value):
self.dac = Dac
self.value = Value
self.cmdBytes = [ 38 + (Dac % 2), Value % 256, Value >> 8 ]
正确格式## d.getFeedback(u3.DAC16(Dac = 0,Value = 0x5566))
Python2允许将字节存储在文本字符串中,但是在Python3中,字节是它们自己的类型。 所以我将它们转换为Python3.4.3使用以下代码生成b''数据
str.encode(STR(十六进制(32768))
b'0x8000'
不幸的是,我从收到此错误开始...
类型错误:在字符串格式化期间,并非所有字符串都被转换
我认为这个错误来自Python3.4.3中的字节不支持%256
类型错误:%不支持的操作数类型:“字节”和“整数”
我不确定为什么%会说'int'不支持它,因为它显然在Python3.4.3中
我非常感谢您的帮助。 谢谢,
我认为这意味着余数实际上是对数字的运算。 字节存储而没有数字解释。
因此,如果要将数字转换为“存储”,则应使用struct
模块 :
from struct import pack
def to_cmd(dac, value):
return pack("!ch", dac % 2, value) # a char and a 2 byte short
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.