【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()
这也就是运算符:‘/’和‘//’的区别,
‘/’这个除是浮点整除发,返回的是一个浮点结果,特别是很多除不尽的数据。
‘//’这个向下整除运算符,结果是一个整数,获取的是比商小,但是又最接近于商的整数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?