我要做的是每当它要求输入时我想要将值放在100和-100之间并且在percentage_for_white函数内我还必须将收到的值转换为小数。该值必须进入另一个名为
的函数percentage_for_white_amount
值和它一起,它必须调整我们被分配在"思考像计算机科学家"中的活动代码上的图像的光。在有" 2-维"的章节中预订并在activecode 4编辑器中。我完成了所有这些但是当我把它放在一起时,它继续说没有定义amount_white。我不知道我需要做些什么来解决,所以请帮忙。
这就是我所拥有的:
import image
def main():
percentage_for_white_amount()
light_levels()
def light_levels():
img = image.Image("luther.jpg")
win = image.ImageWin(img.getWidth(), img.getHeight())
img.draw(win)
img.setDelay(1,15) # setDelay(0) turns off animation
for row in range(img.getHeight()):
for col in range(img.getWidth()):
p = img.getPixel(col, row)
newred = 255 * amount_white + p.getRed() * (1 - amount_white)
newgreen = 255 * amount_white + p.getGreen() * (1 - amount_white)
newblue = 255 * amount_white + p.getBlue() * (1 - amount_white)
if newred >= 0 and newred <= 255:
True
if newgreen >= 0 and newgreen <= 255:
True
if newblue >= 0 and newblue <= 255:
True
newpixel = image.Pixel(newred, newgreen, newblue)
img.setPixel(col, row, newpixel)
img.draw(win)
win.exitonclick()
def percentage_for_white_amount():
percentage_white = -200
while percentage_white < -100 or percentage_white > 100:
percentage_white = input("Provide the amount of white to blend in the image (values -100 and 100): ")
percentage_white = float(percentage_white)
percentage_white = percentage_white / 10
return percentage_white
main()
如果有人能帮助我找出错误或帮助我解决问题,我将不胜感激!
答案 0 :(得分:0)
我发现您的代码存在两个问题。
percentage_white
函数中的percentage_for_white_amount()
是函数的本地变量,因此如果函数定义,则需要在最开始添加global percentage_white
语句。 / p>
return percentage_white
函数中的percentage_for_white_amount()
语句缩进太多,使其成为while
循环的一部分 - 因此它将在第一次迭代结束时执行无论percentage_white
的当前值如何,都会循环。