what does := means simply?

bartc bc at freeuk.com
Fri May 18 17:53:06 EDT 2018


On 18/05/2018 19:57, Chris Angelico wrote:
> On Sat, May 19, 2018 at 4:48 AM, bartc <bc at freeuk.com> wrote:
>> 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.
> 
> You can't write a single byte to a text file, because text files don't
> store bytes. I'm not sure which part of this took you an hour to
> figure out.

I've worked with text files for 40 years. Now Python is telling me I've 
been doing it wrong all that time!

Look at the original code I posted from which this Python was based. 
That creates a file - just a file - without worrying about whether it's 
text or binary. Files are just collections of bytes, as far as the OS is 
concerned.

So what could be more natural than writing a byte to the end of a file?

(Note that this particular file format is a hybrid; it has a text header 
followed by binary data. This is not unusual; probably every binary 
format will contain text too.

A programming language - and one that's supposed to be easy - should 
take that in its stride.)

>> # For Python 3 (it'll work on Python 2 but give the wrong results)
> 
> What does "work" mean? If it gives the wrong results, how is it working?

It works in that Python 2 is not complaining about anything, and it 
finishes (very quickly too). But the output file is 3 times the size it 
should be, and contains the wrong data.

>> end = 0                # lines containing 'end' can be removed
> 
> You're not writing Python code here.

Sorry but I'm lost without the block terminators. I needed them to match 
the logic to the original. After I used them, I decided it looked better.

-- 
bartc



More information about the Python-list mailing list