float在python 3.2中没有属性int

时间:2011-11-03 16:28:17

标签: python random

我有一个错误,说“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")

任何建议都会有所帮助,谢谢。

2 个答案:

答案 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)

RandomColorrandom.random()的结果,这是float。如果你想从中得到0到25​​5之间的东西,你应该使用int(RandomColor*256)random模块的其他更具体的功能。