我的功能的目标是收集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)
我改变了一些事情,这是我现在得到的错误,我不确定为什么......
错误是:来源 全局未找到名称。 找不到本地或全局名称。在尝试以任何方式使用它之前,您需要定义函数或变量。
答案 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。