I’m not the OP, but I want to thank you for that clarification. I had previously not understood the ramifications of the following in section “7. Simple statements” in “The Python Language Reference”:
“An augmented assignment expression like x += 1 can be rewritten as x = x + 1 to achieve a similar, but not exactly equal effect. In the augmented version, x is only evaluated once. Also, when possible, the actual operation is performed in-place, meaning that rather than creating a new object and assigning that to the target, the old object is modified instead.” Thanks again. Bev > On Sep 19, 2019, at 5:45 AM, Richard Damon <rich...@damon-family.org> wrote: > > I think the issue is that x += 1 isn't exactly like x = x + 1, and this > is one case that shows it. x = x + 1 is an assignment to the symbol x, > which makes x a local, and thus the read becomes an undefined symbol. x > += 1 is different, it isn't a plain assignment so doesn't create the > local. The read of x is inherently tied to the writing of x so x stays > referring to the global. -- https://mail.python.org/mailman/listinfo/python-list