我有一个错误,说“float没有属性int”错误。 问题是编写一个函数,将参数作为图像,并绘制两条垂直线到img,一条红线从(50,0)到(50,300),另一条由随机着色的像素组成(150,50)到( 150,250)。由于某种原因随机部分,我有randomcolor.int(0,255)是我有错误的地方。有什么我需要转换?这是我的代码:
from cImage import*
import random
RandomColor = random.random()
myImWin = ImageWin("Line Image", 300, 300)
lineImage = EmptyImage(300,300)
redPixel = Pixel(255,0,0)
randomRed = Pixel(RandomColor.int(0,255))
for i in range(300):
for x in range(250):
lineImage.setPixel(50,i,redPixel)
randomRed.setPixel(150,x,randomRed)
lineImage.draw(myImWin)
randomRed.save("lineImage.gif")
任何建议都会有所帮助,谢谢。
答案 0 :(得分:6)
random.random()
返回[0.0,1.0]范围内的随机浮点数。如果你想要它的整数,你必须这样做:
int(RandomColor) # would be 0 because random() is < 1.0
int(RandomColor * 256) # to get 0-255
你想要一个介于0到255之间的随机数,所以你不能这么做:
random.randint(0,255)
答案 1 :(得分:1)
RandomColor
是random.random()
的结果,这是float
。如果你想从中得到0到255之间的东西,你应该使用int(RandomColor*256)
或random
模块的其他更具体的功能。