小编Bre*_*hom的帖子

在Python中将整数转换为2字节的十六进制值

对于tkinter GUI,我必须以'0x00'的形式读取十六进制地址以设置I2C地址.我目前正在这样做的方法是将输入作为字符串读取,将字符串转换为整数,然后将该整数转换为实际的Hex值,如下面的部分代码所示:

GUI初始化:

self.I2CAddress=StringVar()
self.I2CAddress.set("0x00") #Sets Default value of '0x00'
Label(frame, text="Address: ").grid(row=5, column=4)
Entry(frame, textvariable=self.I2CAddress).grid(row=5, column=5)
Run Code Online (Sandbox Code Playgroud)

然后在函数内部:

addr = self.I2CAddress.get()   
addrint = int(addr, 16)  
addrhex = hex(addrint)
Run Code Online (Sandbox Code Playgroud)

这适用于大多数值,但我的问题是,如果我输入一个小的十六进制值字符串,如'0x01',它会转换为正确的整数1,但然后转换为十六进制值0x1而不是0x01.

我是一名EE,编程经验非常有限,所以非常感谢任何帮助.

python int hex data-conversion python-2.7

7
推荐指数
1
解决办法
2万
查看次数

Python中数组的移动平均值

我有一个数组,其中记录和存储谨慎的正弦波值.我想找到波形的最大值和最小值.由于正弦波数据是使用DAQ记录的电压,因此会有一些噪声,因此我想进行加权平均.假设self.yArray包含我的正弦波值,这是我的代码到目前为止:

filterarray = []
filtersize = 2
length = len(self.yArray)
for x in range (0, length-(filtersize+1)):
   for y in range (0,filtersize):
      summation = sum(self.yArray[x+y])
      ave = summation/filtersize
      filterarray.append(ave)
Run Code Online (Sandbox Code Playgroud)

我的问题似乎是在第二个for循环中,根据我的平均窗口大小(filtersize),我想总结窗口中的值以取其平均值.我收到一条错误说:

summation = sum(self.yArray[x+y])
TypeError: 'float' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我是一名EE,在编程方面经验很少,所以非常感谢任何帮助!

python moving-average python-2.7

2
推荐指数
2
解决办法
6423
查看次数

标签 统计

python ×2

python-2.7 ×2

data-conversion ×1

hex ×1

int ×1

moving-average ×1