代码之家  ›  专栏  ›  技术社区  ›  eric lardon

***ValueError:基数为10的int()的文本无效:“\;”

  •  0
  • eric lardon  · 技术社区  · 7 年前

    我想将我的颜色数组转换为RGB像素值。

    颜色

    array(['#32CD32', '#CD5C5C', '#00BFFF', '#1E90FF', '#00008B', '#ADFF2F',
           '#B0E0E6', '#7CFC00', '#00008B', '#1E90FF', '#F08080', '#F08080',
           '#FA8072', '#0000FF', '#7CFC00', '#B0E0E6'],
          dtype='<U7')
    

    我试过什么?

    pixel_color = ['#%02x%02x%02x' % (c[0], c[1], c[2]) for c in colors]
    

    我发现以下错误:

    *****类型错误:%x格式:需要整数,而不是str**

    然后我做了以下事情:

    pixel_color = ["#%02x%02x%02x" %(int(c[0]), int(c[1]), int(c[2])) for c in colors]
    

    然后我得到以下错误:

    *****ValueError:基数为10的int()的文本无效:“\;”**

    1 回复  |  直到 7 年前
        1
  •  1
  •   user3483203    7 年前

    你不是在剥 # 在尝试转换之前从您的输入。还有,你为什么不使用 bytes.fromhex() :

    x = ['#32CD32', '#CD5C5C', '#00BFFF', '#1E90FF', '#00008B', '#ADFF2F',
    '#B0E0E6', '#7CFC00', '#00008B', '#1E90FF', '#F08080', '#F08080',
    '#FA8072', '#0000FF', '#7CFC00', '#B0E0E6']
    
    for i in x:
      red, green, blue = bytes.fromhex(i[1:])
      print(red, green, blue)
    

    输出:

    50 205 50
    205 92 92
    0 191 255
    30 144 255
    0 0 139
    173 255 47
    176 224 230
    124 252 0
    0 0 139
    30 144 255
    240 128 128
    240 128 128
    250 128 114
    0 0 255
    124 252 0
    176 224 230