for循环中的语法错误

时间:2014-11-23 22:54:34

标签: python

我的功能的目标是收集RGB颜色编号(1-255),找到这三个数字的平均值,并将所有3个RGB值设置为该平均值。我认为我很接近,但有些事情并不工作,我不确定它是什么。

此外,它表示函数的第一行有语法错误。

提前致谢

def grayScale(source):
    path = pickAFile()
    source = makePicture(path)
    height = getHeight(source)
    width = getWidth(source)
    sourceY = 0
    for y in range(0,height): # Note a colon here
        sourceX = 0
        for x in range(0,width): # And here
            r = getRed(getPixel(source, int(sourceX), int(sourceY)))
            g = getGreen(getPixel(source, int(sourceX), int(sourceY)))
            b = getBlue(getPixel(source, int(sourceX), int(sourceY)))
    average = (r + g + b) / 3
    newColor = makeColor(average,average,average)
    setColor(getPixel(target, targetX, targetY), newColor)
    print average       
    explore(target)

我改变了一些事情,这是我现在得到的错误,我不确定为什么......

错误是:来源 全局未找到名称。 找不到本地或全局名称。在尝试以任何方式使用它之前,您需要定义函数或变量。

1 个答案:

答案 0 :(得分:0)

你有缩进和冒号的问题。具体来说,每个for语句最后都需要一个冒号,就在下面的缩进代码块之前。

此外,块中的所有代码都需要处于相同的缩进级别。在您的代码中,最后两行是缩进的两个额外字符。这是固定代码:

def grayScale(source):
    # Note indentation
    for y in range(0,height): # Note a colon here
        for x in range(0,width): # And here
            r = getPixel(getRed(source))
            g = getPixel(getGreen(source))
            b = getPixel(getBlue(source))
            average = (r + g + b) / 3
            newColor = makeColor(average,average,average)
            setColor = newColor

# Your code...

请务必阅读flow control in Python