The point that the = sign is wrong because "it's not what it means in math" is naive. Immediately after the statement, of course the equality holds. But moreover, even the notion of a "variable" doesn't match what a variable is in mathematics because of the space- and time-dependent features of the logic employed by programming languages. In pure languages like Haskell, the equal sign is perfectly valid. But to say it's invalid in Python is an odd tic programming language critics took up a long time ago for basically no real reason. Any argument that it is inappropriate should be taken in context: similarly, +, -, *, are all wrong, the distinction between / and // ignore the fact division as an operation is given up after 5th grade in favor of fractions, and no self-respecting mathematician would ever consider using the % operator rather than the more standard modulo equivalence relation.<br><br>The equals sign isn't a "flaw" or a "quirk". It's just a choice. And a perfectly legitimate one. If anything is illegitimate about the situation, it's that we use languages with mutable variables.