为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 int 会被识别为 float?

为什么 int 会被识别为 float?

慕仙森 2023-08-08 17:15:06
我必须使用pillow在python中创建一个调整大小算法。有些变量是法语的。在这里,我在一段时间的末尾添加到 i (因此 i 始终是一个 int ),并且 x 始终是一个 int ,因为它超出了范围。a[x] 是一个元组。from PIL import Imagephoto=Image.open("meh.jpg")from random import randinttaille=photo.sizelargeur=int(taille[0]*facteur)hauteur=int(taille[1]*facteur)diffhauteur=hauteur-taille[1]difflargeur=largeur-taille[0]newImage= Image.new('RGB', (largeur,hauteur))if diffhauteur>1:    i=0    while i !=taille[0]:        a=[]        for b in range(taille[1]):            liste.append(photo.getpixel((i,b))) #get all the data of the pixels in the row        for b in range(diffhauteur): #add some pixel  (gradient) to get the lenght of the new img            index=randint(0,len(a)-2)            pixel2=a[index+1]            pixel1=a[index]            ab=  degrade(pixel1,pixel2) #create a gradient of two pixels as a tuple            a.insert(index,ab)        for x in range (hauteur):#add the row to the new img            newImage.putpixel((i,x),a[x])        i=i+1newImage.show()但是,我收到此错误:#here are the valuesa[x]=(0.0, 0.0, -1.0)i=0x=6line 71, in resizing    newImage.putpixel((i,x),a[x]) TypeError: integer argument expected, got float对于特定值,不会发生这种情况。完全是随机的有人有答案吗?因为这看起来很棘手或者太简单了,我明天要问我的老师,但我不知道我是否能够解决这个问题。感谢您
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

a[x]不是ints函数所要求的 的元组,而是 的元组floats。因此,您必须将此元组转换为整数。

您可以将元组映射到整数:

for x in range (hauteur):
    a2 = tuple(map(int, a[x]))
    newImage.putpixel((i,x),a2)


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信