python re.search匹配int的无效文字

问题描述

我试图将例如173.4k(以字符串形式)转换为173.400。这是我的代码

h = "173.4k net worth blabla "

match = re.search('([-+]?\d*\.\d+|\d+)k net worth',h)
if match:
    f = int(match.group(1))*1000
    print(f)

我期望的结果是173.400,但是我得到的是:

ValueError: invalid literal for int() with base 10: '173.4'

有人可以解释一下为什么我会出现ValueError吗?

解决方法

def convertGBAR4444(array,width,height,startByte = 0):
    img = QImage(width,QImage.Format_ARGB32)
    img.fill(QtGui.QColor(0,0))

    for y in range(height):
        for x in range(width):
            gb = array[startByte + y * 2 * width + x * 2]
            ar = array[startByte + y * 2 * width + x * 2 + 1]
            #print(gb,ar)
            g = gb >> 4
            b = gb & 0xF
            a = ar >> 4
            r = ar & 0xF
            img.setPixel(x,y,qRgba(r * 0x11,g * 0x11,b * 0x11,a * 0x11))
    return img