VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 【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()
复制代码

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

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

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


出处:https://www.cnblogs.com/ygyalex/p/17034163.html


相关教程