随笔 - 23  文章 - 0  评论 - 0  阅读 - 11594

【Python】TypeError: integer argument expected, got float【‘/’与'//'的区别】

运行如下代码:突然出现错误。

from PIL import Image
image=Image.open('./image/3.JPG')
print(image)
image_1=image.resize((1000,1000))
image_2=image.resize((image.size[0]/3,image.size[1]/3))
image_2.show()

错误代码显示

Traceback (most recent call last):
  File "H:\PythonDemo\pythonstudy\TurtleDraw.py", line 407, in <module>
    image_2=image.resize((image.size[0]/3,image.size[1]/3))
  File "E:\Python\lib\site-packages\PIL\Image.py", line 2192, in resize
    return self._new(self.im.resize(size, resample, box))
TypeError: integer argument expected, got float

意思就是得到的是float数据,不是整数。这里需要获取整数。所以需要更改一下:正确代码如下:

from PIL import Image
image=Image.open('./image/3.JPG')
print(image)
image_1=image.resize((1000,1000))
image_2=image.resize((image.size[0]//3,image.size[1]//3))
image_2.show()

这也就是运算符:‘/’和‘//’的区别,

‘/’这个除是浮点整除发,返回的是一个浮点结果,特别是很多除不尽的数据。

‘//’这个向下整除运算符,结果是一个整数,获取的是比商小,但是又最接近于商的整数。

 

posted on   至清无物  阅读(1363)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示