Python如何以预期的形式显示结果

2024-09-29 17:47:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python操作数据并按预期格式显示

目前,我使用空数组根据数据类型(U8和U16)附加处理过的数据

对于U8数据类型:Value = 255

我得到的结果是:request = 2F f4 0d ['ff', 0, 0, 0]

我期望通过限制加法字节来显示结果:request = 2F f4 0d ff

对于U16数据类型:Value = 260

我得到的结果是:request = 2F f4 0c ['04', '10', 0, 0]

我希望通过限制加法字节来显示结果:request = 2F f4 0d 04 10

代码如下:

def EventOnBtnIOControl(event):

#Called the Force Numeric Item to open GUI
ForceNumericItem()

global Value
global CMD

top.wait_window(Subtop)
request = '2F'+ ' '+'f4'+' '+'0d'+' '+ str(CMD)
print request
return

我的GUI功能:

def ForceNumericItem():
 Subtop.bind('<Return>', EventForceValue)
 return

单击Enter

def EventForceValue(event):
global Value
Value = SubMenuTakeStrInt()
print SMIScale
fScaledAndOffset = ( ( Value - SMIOffset ) / SMIScale )
print fScaledAndOffset

if (fScaledAndOffset >= 0.0):
    iScaledAndOffset = math.trunc(fScaledAndOffset + 0.5)
else:
    iScaledAndOffset = math.trunc(fScaledAndOffset - 0.5)
print iScaledAndOffset
global CMD

CMD = [0,0,0,0]

if(SMIType == 'u8' or SMIType == 's8'):
    CMD[0] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
    CMDlimit = 1
    print CMD

elif (SMIType == 'u16' or SMIType == 's16'):
    CMD[0] = hex(( iScaledAndOffset >> 8 ) & 0xff)[2:].zfill(2)
    CMD[1] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
    CMDlimit = 2
    print CMD
elif (SMIType == 'u24'):
    CMD[0] =  hex(( iScaledAndOffset >> 16 ) & 0xff)[2:].zfill(2)
    CMD[2] = hex(( iScaledAndOffset >> 8 ) & 0xff)[2:].zfill(2)
    CMD[3] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
    print CMD
elif (SMIType == 'u32'):
    CMD[0] =  hex(( iScaledAndOffset >> 24 ) & 0xff)[2:].zfill(2)
    CMD[1] =  hex(( iScaledAndOffset >> 16 ) & 0xff)[2:].zfill(2)
    CMD[2] = hex(( iScaledAndOffset >> 8 ) & 0xff)[2:].zfill(2)
    CMD[3] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
    print CMD
else:
    printf(  "Invalid Numeric Data by ID Type", Red )
Subtop.destroy()
top.deiconify()

return

Tags: cmdreturnvaluerequestdefglobal数据类型print
1条回答
网友
1楼 · 发布于 2024-09-29 17:47:47

你的CMD

CMD = [0,0,0,0]

您正在使用

request = '2F'+ ' '+'f4'+' '+'0d'+' '+ str(CMD)
print request

可能str是问题的根源,因为它会将列表转换为列表的字符串表示形式。也许你想要

["{} ".format(i) for i in CMD]

而不是

str(CMD)

甚至

["{} ".format(i) for i in CMD if i != 0]

甚至更多

" ".join([i for i in CMD if i != 0])

相关问题 更多 >

    热门问题