.. This document was generated by tools/gen-cpydiff.py Syntax ====== Generated Fri 09 Jul 2021 00:08:56 UTC Operators --------- .. _cpydiff_syntax_assign_expr: MicroPython allows using := to assign to the variable of a comprehension, CPython raises a SyntaxError. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Cause:** MicroPython is optimised for code size and doesn't check this case. **Workaround:** Do not rely on this behaviour if writing CPython compatible code. Sample code:: print([i := -1 for i in range(4)]) +--------------------------------------------+----------------------+ | CPy output: | uPy output: | +--------------------------------------------+----------------------+ | :: | :: | | | | | File "", line 7 | [-1, -1, -1, -1] | | print([i := -1 for i in range(4)]) | | | ^ | | | SyntaxError: invalid syntax | | +--------------------------------------------+----------------------+ Spaces ------ .. _cpydiff_syntax_spaces: uPy requires spaces between literal numbers and keywords, CPy doesn't ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: try: print(eval("1and 0")) except SyntaxError: print("Should have worked") try: print(eval("1or 0")) except SyntaxError: print("Should have worked") try: print(eval("1if 1else 0")) except SyntaxError: print("Should have worked") +-------------+------------------------+ | CPy output: | uPy output: | +-------------+------------------------+ | :: | :: | | | | | 0 | Should have worked | | 1 | Should have worked | | 1 | Should have worked | +-------------+------------------------+ Unicode ------- .. _cpydiff_syntax_unicode_nameesc: Unicode name escapes are not implemented ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sample code:: print("\N{LATIN SMALL LETTER A}") +-------------+-----------------------------------------------+ | CPy output: | uPy output: | +-------------+-----------------------------------------------+ | :: | :: | | | | | a | NotImplementedError: unicode name escapes | +-------------+-----------------------------------------------+