On Tue, 29 Mar 2022 at 09:53, Ethan Furman <et...@stoneleaf.us> wrote: > > In the following bit of code: > > > while s := input.read(MAXBINSIZE): > while len(s) < MAXBINSIZE and ns := input.read(MAXBINSIZE-len(s)): > s += ns > line = binascii.b2a_base64(s) > output.write(line) > > I'm getting this error on the second line: > > cannot use assignment expressions with expression > > Can somebody explain why that isn't working? >
I'm getting a good hint from the exception in 3.11: >>> while len(s) < MAXBINSIZE and ns := input.read(MAXBINSIZE-len(s)): File "<stdin>", line 1 while len(s) < MAXBINSIZE and ns := input.read(MAXBINSIZE-len(s)): ^^^^^^^^^^^^^^^^^^^^^^^^^^ SyntaxError: cannot use assignment expressions with expression Looks like it's counting "len(s) < MAXBINSIZE and ns" as the assignment target. Parens around the second half would solve that. ChrisA _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/E5DAPQX3CODJTU4PTTEDCD6NSMZSTAOB/ Code of Conduct: http://python.org/psf/codeofconduct/