栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

TypeError: not all arguments converted during string formatting

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TypeError: not all arguments converted during string formatting

错误代码:

# pip install Pillow
import PIL.Image as Image


# 以第一个像素为准,相同色改为透明
def transparent_back(img):
    img = img.convert('RGBA')
    L, H = img.size
    print(L, H)
    # color_0 = (255, 255, 255, 255)  # 要替换的颜色
    for h in range(H):
        print()
        for l in range(L):
            dot = (l, h)
            color_1 = img.getpixel(dot)
            print("%15s"%(color_1), end=' ')
            if color_1[0] > 210 and color_1[1] > 210 and color_1[2] > 210:
                list = (color_1[0], color_1[1], color_1[2], 0)
                img.putpixel(dot, list)
            # else:
            #     list = (255, 255, 255, 255)
            #     img.putpixel(dot, list)

            # print(type(color_1))
            # if color_1 == color_0:
            #     color_1 = color_1[:-1] + (0,)
            #     img.putpixel(dot, color_1)
    return img


if __name__ == '__main__':
    img = Image.open('AD.jpg')
    img = transparent_back(img)
    img.save('img2.png')

错误原因

原因:1 % 操作符只能直接用于字符串(‘123’),列表([1,2,3])、元组,因此需要一一匹配操作符。

解决方法

 上代码

    for h in range(H):
        print()
        for l in range(L):
            dot = (l, h)
            color_1 = img.getpixel(dot)
            print("%3s,%3s,%3s,%3s"%(color_1), end=' ')
            if color_1[0] > 210 and color_1[1] > 210 and color_1[2] > 210:
                list = (color_1[0], color_1[1], color_1[2], 0)
                img.putpixel(dot, list)

#简单解释
说明前后%和后面的参数数量不对应,这上面的color_1是一个有四个元素的元组

255,255,255,255

错误原因是后面有四个参数,但是前面只有一个%15s  在数量上不能正确匹配所以出错

正确改成

            print("%3s,%3s,%3s,%3s"%(color_1), end=' ')

则就可以正常运行了

如果因为我的代码太复杂了难以理解,可以参考下面的这个博客

Python学习笔记:TypeError: not all arguments converted during string formatting_去向前方的博客-CSDN博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号