[Tutor] Assistance with Psuedocode

Dave Angel davea at ieee.org
Thu Nov 18 03:22:02 CET 2010


On 2:59 PM, Joe Ohmer wrote:
> Hello,
>
> The following code works well but I don't understand why the mysteryEffect code block changes the picture.
> Doesn’t 64*(r/64) just equal r? (Same with g and b.) So this function should not change the picture at all. But it does! If anyone can explain how and why this actually changes the picture I would appreciate it greatly.
>
> <snip>
>
> #Adds a rainbow effect to the picture
> def mysteryEffect( pic2 ):
>    for px in getPixels( pic2 ):
>      r= getRed ( px )
>      g= getGreen( px )
>      b= getBlue( px )
>      setRed( px, 64*(r/64))
>      setGreen( px, 64*(g/64))
>      setBlue( px, 64*(b/64))
>    repaint( pic2 )
>
> Thanks,
> Joe
>
You didn't specify the python version.   But I'd guess you're using 2.x 
(as opposed to 3.x), where dividing integers gives an integer by 
default.  To quickly check, try
     print  25/9

and if you get 2, you'll see what I mean.  When you then multiply 2 by 
9, you get 18.

DaveA



More information about the Tutor mailing list