what does := means simply?

bartc bc at freeuk.com
Fri May 18 14:48:23 EDT 2018


On 18/05/2018 18:27, bartc wrote:

> (BTW here's a port of that benchmark based on the Lua code:
> 
>    https://pastebin.com/raw/ivDaKudX

And here's the payoff: I was able to use this version to port it to 
Python. One which works better the the originals, as they wrote output 
to the screen (/binary/ output) which I found difficult to capture into 
an actual ppm file in order to test it worked.

The translation was straightforward, EXCEPT that I wasted an hour trying 
to figure out to write /a single byte/ to a file. The following 
eventually worked, using a binary file as a text one had Unicode 
problems, but it's still hacky.

Note this version doesn't use any imports at all.

----------------------------------------------------------------

# For Python 3 (it'll work on Python 2 but give the wrong results)

n = 200                # adjust this for output size: n * n pixels
outfile = "test.ppm"   # adjust for output file name
end = 0       	       # lines containing 'end' can be removed

def start():
     m = 2/n
     ba = 1<<(n%8+1)
     bb = 1<<(8-n%8)

     f = open(outfile,"wb")

     f.write(b"P4\n")
     f.write((str(n)+" "+str(n)+"\n").encode())

     for y in range(n):
         ci = y*m-1
         b = 1

         for x in range(n):
             cr = x*m-1.5
             zr = cr
             zi = ci
             zrq = cr*cr
             ziq = ci*ci
             b <<= 1
             for i in range(1,50):
                 zi = zr*zi*2+ci
                 zr = zrq-ziq+cr
                 ziq = zi*zi
                 zrq = zr*zr
                 if zrq+ziq>4:
                     b +=1
                     break
                 end
             end
             if b>=256:
                 f.write(bytes([511-b]))
                 b = 1
             end
         end
         if b != 1:
             f.write(bytes([(ba-b)*bb]))
         end
     end
     f.close()
end

start()




More information about the Python-list mailing list