> Hi all. In C, an assignment statement returns the value assigned. No. C doesn't have an assignment statement. Instead, in C, assignment is an expression (just like a binary operation or a function call); that expression evaluates to the value assigned (i.e. the result is the value, the assignment is just a side-effect).
What you consider the assignment statement is actually an expression statement, of the syntax <expression> <semicolon> So x = y; f(); 3+4; are all the same kind of statement. > In python, as far as I can tell, assignment statements don't return > anything: Right - that's because they are statements. No statement "returns" a value - except for the return statement, of course, but it doesn't return it in the sense that you could write foo = return 44 Because of the confusing meaning of "return", I find it better to say that expressions evaluate to a value, not that they return a value. > The above example generates a SyntaxError. > > Is this correct? I just want to make sure I've understood the > semantics. Please try to study more on the difference between expressions and statements. Regards, Martin P.S. Just to confuse matters: GNU C also has statement expressions, of the form ({ int y = foo (); int z; if (y > 0) z = y; else z = - y; z; }) These are expressions, but allow the expressiveness of statements (including variable declarations) -- http://mail.python.org/mailman/listinfo/python-list