Traceback (most recent call last):
File "C:/Users/Dell/PycharmProjects/banmaxian/预测.py", line 74, in <module>
draw.text((50.50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
File "F:\Anaconda\lib\site-packages\PIL\ImageDraw.py", line 221, in text
xy = xy[0] + offset[0], xy[1] + offset[1]
TypeError: 'float' object is not subscriptable
Process finished with exit code 1
变量xy,offset其中一个应该是float变量而非数组变量,是无法进行下标的引用的。应该传进来个元组,而不是小数点分割的小数。
draw.text((50,50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
你的代码错误在于这行:draw.text((50.50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255)),注意坐标位置,是一个两个数元组,你却写成了50.50,运行中必然报浮点数无法用下标引用错误。改为(50,50)。
draw.text((50,50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
draw.text((50.50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
# 把上面的代码替换为下面的代码,你把逗号(,)误写为点号(.)了
draw.text((50, 50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
错误就是(50,50) 中间是逗号, draw.text 的第一个参数是二维数组(50,50) ,你写成一位数组的话(50.50), 里面方法取索引 [1] 时就会出错。
正确的就是
draw.text((50,50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
draw.text((50.50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))
这一行里面50.50是一个数,你的原意应该是要是两个数
应该用,号隔开写成 50,50如下面所示:
draw.text((50,50),'GreenRate:'+str('%.2f')%rate, font=font, fill=(255, 255,255))